Coordination of message alert presentations across devices based on device modes

ABSTRACT

Certain embodiments of the present invention can detect and evaluate new messages at a coordinating device to determine whether to forward the message to a wearable device. In this manner, a server can reduce a number of devices that it is to communicate a message to, while still allowing the message to be availed to multiple devices. Further, certain embodiments relate to coordinating alerts (e.g., audio or haptic alerts) to reduce redundant alerts of a single message amongst spatially clustered devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority to U.S. ProvisionalApplication No. 62/004,346, filed on May 29, 2014, which is herebyincorporated by reference in its entirety for all purposes.

FIELD OF INVENTION

The present disclosure relates generally to device forwarding of appmessages and inter-device communications to coordinate presentations of(e.g., visual) notification presentations and/or (e.g., audio or haptic)alerts for messages.

BACKGROUND

Electronic devices are frequently used to notify a user of a variety ofevents. In some instances, a sound alert initially notifies a user of anevent, and additional detail can be viewed using an applicationoperating on the device. For example, a computer can emit a tone when anew email for a user email account has been received, or a phone canplay an audio signal when a new text message is received. However,nowadays, a single user can use multiple devices. Which device is mostconvenient to the user for alerts and/or notification presentations candepend on the day, time and/or other factors.

In some instances, each device of a user can be configured to receive asingle event. For example, multiple devices can be configured to accessemail from a same account. This can provide some conveniences, as it maybe more likely that a user is near at least one device to be notified ofa new email. However, it can also result in multiple, redundant alertsof the email. For example, FIG. 1 illustrates a situation in which auser 105 is near three electronic devices: a phone 110 a, a tabletcomputer 110 b and a laptop computer 110 c. When a new email is receivedvia an account of user 105, each of devices 110 a-110 c sound can soundan alert. Given the location of user 105 and of devices 110 a-110 c, thealerts can be redundant with each other and potentially annoying to user105. Further, such configurations can increase a load on a serverassociated with the event. Thus, it would be desirable to coordinatebetween devices such that messages are available on multiple devices butin a manner that reduces server load and redundant alerts.

SUMMARY

In some embodiments, a computer-implemented method can be provided thatcan include detecting, at a coordinating device, a message anddetermining a location characteristic of a mobile device. The method canalso include determining, based on the location characteristic, that aproximate condition is satisfied and determining whether thecoordinating device is in an active mode. When it is determined that thecoordinating device is in the active mode, a coordinating-device alertcan be presented at the coordinating device. When it is determined thatthe coordinating device is not in the active mode, a signal can betransmitted to the mobile device that corresponds to an invitation topresent a mobile-device alert corresponding to the message.

In some embodiments, a computer-implemented method can be provided thatcan include detecting, at a mobile device, a message at a first time andmonitoring a communication channel to determine whether a signalcorresponding to an invitation to present an alert corresponding to themessage is received from a coordinating device within a time period fromthe first time. When the signal is received from the coordinating devicewithin the time period, it can be identified whether the mobile deviceis in an active mode. When it is identified that the mobile device is inthe active mode, a mobile-device alert for the message can be presentedat the mobile device and a second signal can be transmitted to thecoordinating device. The second signal can indicate that the mobiledevice is handling presentation of the alert for the message. When thesignal is not received from the coordinating device within the timeperiod, a mobile-device alert for the message can be presented.

In some embodiments, a coordinating device can be provided. Thecoordinating device can include an output component configured to outputstimuli and a connection component configured to transmit communicationsto other devices. The coordinating device can also include one or moreprocessors coupled to the output component and the connection componentand a computer-readable storage medium containing instructions, that,when executed by the one or more processors, cause the one or moreprocessors to perform actions. The actions can include part or all ofone or more methods disclosed herein.

In some embodiments, a mobile device can be provided that can include anoutput component configured to output stimuli and a connection componentconfigured to transmit communications over one or more communicationchannels to other devices. The mobile device can also include one ormore processors coupled to the output component and the connectioncomponent and a computer-readable storage medium containinginstructions, that, when executed by the one or more processors, causethe one or more processors to perform actions. The actions can includepart or all of one or more methods disclosed herein.

In some embodiments, a coordinating device system can be provided. Thecoordinating device system can include a detection module for detectinga message and a device detector module for determining a locationcharacteristic of a mobile device and determining, based on the locationcharacteristic, that a proximate condition is satisfied. Thecoordinating device system can include a mode detection module fordetermining whether the coordinating device system is in an active modeand an output module for, when it is determined that the coordinatingdevice is in the active mode, presenting a coordinating-device alert atthe coordinating device system. The coordinating device system caninclude an alert coordination module for, when it is determined that thecoordinating device is not in the active mode, transmitting a signal tothe mobile device that corresponds to an invitation to present amobile-device alert corresponding to the message.

In some embodiments, a mobile device system can be provided. The mobiledevice system can include a detection module for detecting a message ata first time and an alert coordination module for determining whether asignal corresponding to an invitation to present an alert correspondingto the message is received from a coordinating device within a timeperiod from the first time. The mobile device system can also include amode detection module for identifying, when the signal corresponding tothe invitation to present the alert corresponding to the message isreceived from the coordinating device within the time period from thefirst time, whether the mobile device system is in an active mode. Themobile device system can further include an output module for presentingan alert for the message when the signal is received from thecoordinating device within the time period and the mobile device systemis in the active mode or the signal is not received from thecoordinating device within the time period. The alert coordinationmodule can further be for transmitting a second signal to thecoordinating device when the signal is received from the coordinatingdevice within the time period and when the mobile electronic is in theactive mode. The second signal can indicate that the mobile devicesystem is handling presentation of the alert for the message.

In some embodiments, a system can be provided that includes acoordinating device system and a mobile device system disclosed herein.In some embodiments, a system can be provided that includes acoordinating device and a mobile device disclosed herein.

In some embodiments, a computer-implemented method can be provided. Themethod can include detecting, at a coordinating device, a message andidentifying an app associated with the message. The method can furtherinclude determining whether the app can be identified on a blacklistand, when it is determined that the app is not identified on theblacklist: a mobile device can be identified (where each of thecoordinating device and the other electronic device can be associatedwith a same account) and it can be determined whether a subscribing appis subscribed to process the message. The subscribing app can includethe app associated with the message or another app. When it isdetermined that a subscribing app is subscribed to process the messageand when it is determined that the app is not identified on theblacklist, the subscribing app can be enabled to process the message,the processed message can be accessed; and a signal can be transmittedfrom the coordinating device that includes the processed message to themobile device. When it is determined that a subscribing app is notsubscribed to process the message, a signal can be transmitted from thecoordinating device to the mobile device. The signal can include atleast part of the message. When it is determined that the app isidentified on the blacklist, the coordinating device can refrain fromforwarding the message or processed version thereof to the otherelectronic device. A location characteristic of the mobile device can bedetermined. Based on the location characteristic, it can be determinedthat a proximate condition is satisfied. The coordinating device candetermine whether the coordinating device is in an active mode. When itis determined that the coordinating device is in the active mode, acoordinating-device alert can be presented at the coordinating device.When it is determined that the coordinating device is not in the activemode, a signal can be transmitted to the mobile device. The signal cancorrespond to an invitation to present a mobile-device alertcorresponding to the message.

In some embodiments, a computer-implemented method can be provided. Themethod can include detecting, at a coordinating device, a message, andidentifying an app associated with the message. The method can alsoinclude determining, based on the identified app, whether thecoordinating device is to handle message forwarding for the app; andwhen it is determined that the coordinating device is to handle messageforwarding for the app: identifying another electronic device. Each ofthe coordinating device and the other electronic device can beassociated with a same account. The method can further includetransmitting, from the coordinating device, a signal to the otherelectronic device. The signal can include at least part of the message.In some instances, only one of the coordinating device and the otherdevice presents an audio or haptic alert for the message.

Determining whether the coordinating device is to handle messageforwarding for the app can include determining whether the app isidentified on a blacklist. It can be determined that the coordinatingdevice is not to handle message forwarding for the app when it isdetermined that the app is identified on the blacklist. An operatingsystem for the coordinating device can include the blacklist. Theblacklist can be static such that which apps are identified on theblacklist does not change. Determining whether the coordinating deviceis to handle message forwarding for the app can include determiningwhether the app is associated with an electronic subscriber for handlingmessage distribution. It can be determined that the coordinating deviceis not to handle message forwarding for the app when the app has asubscriber.

Determining whether the coordinating device is to handle messageforwarding for the app can include performing a look-up technique usingan identifier of the app. The coordinating device can present the audioor haptic alert for the message when it is determined that thecoordinating device is in an active mode or when neither thecoordinating device nor the other device is determined to be in theactive mode. Determining whether the coordinating device is in theactive mode can include determining whether a screen of the coordinatingdevice is on or unlocked.

The method can be performed by a daemon executing on the coordinatingdevice. Detecting the message can include receiving a first signal thatcan include the message from a server. The signal transmitted to theother electronic device can lack at least some of the data in the firstsignal. The other electronic device can be a wearable electronic device.When it is determined that the coordinating device is to handle messageforwarding for the app, a plurality of other electronic devices can beidentified. Each of the other electronic device and the coordinatingdevice can be associated with the same account. The plurality of otherelectronic devices can include the other electronic device. Further,when it is determined that the coordinating device is to handle messageforwarding for the app, a signal can be transmitted from thecoordinating device to each of the other electronic devices. The signalcan include at least part of the message.

In some embodiments, a computer-implemented method can be provided thatincludes receiving, at a mobile device, a first message that wasforwarded to the mobile device by a coordinating device. The message canbe associated with a first app for which the coordinating device is tohandle message forwarding. The method can also include determining thatanother device is to handle alert presentation for the first messageand, in response to determining that another device is to handle alertpresentation for the message, suppressing, at the mobile device, apresentation of a non-visual alert for the first message. The method canfurther include receiving, at the mobile device, a second message from asource. In some instances, the source is not the coordinating device.The message can be associated with a second app for which thecoordinating device is not to handle message forwarding. The method canfurther include presenting a non-visual alert for the second message.

Suppressing the presentation of the non-visual alert can include notpresenting the non-visual alert for the first message. Determining thatthe other device is to handle alert presentation for the first messagecan include determining that an alert-presentation invitation was notreceived for the first message within a defined time period. The sourcecan be a remote server. The mobile device and the coordinating devicecan be connected via a short-range connection.

In some embodiments, a coordinating device is provided. The device caninclude an output component configured to output stimuli and aconnection component configured to transmit communications over one ormore communication channels to other devices. The device can alsoinclude one or more processors coupled to the output component and theconnection component and a computer-readable storage medium containinginstructions, that, when executed by the one or more processors, causethe one or more processors to perform a method disclosed herein.

In some embodiments, a mobile device is provided. The device can includean output component configured to output stimuli and a connectioncomponent configured to receive communications over one or morecommunication channels from other devices. The device can also includeone or more processors coupled to the output component and theconnection component and a computer-readable storage medium containinginstructions, that, when executed by the one or more processors, causethe one or more processors to perform actions including a methoddisclosed herein.

In some embodiments, a coordinating device system is provided. Thesystem can include a detection module for detecting a message and an appidentification module for identifying an app associated with themessage. The system can also include a notification distribution modulefor determining, based on the identified app, whether the coordinatingdevice is to handle message forwarding for the app and identifying, whenit is determined that the coordinating device is to handle messageforwarding for the app, an other electronic devices. Each of thecoordinating device system and the other electronic device can beassociated with a same account. When it is determined that thecoordinating device is to handle message forwarding for the app, thenotification distribution module can transmit, from the coordinatingdevice system, a signal to the other electronic device. The signal caninclude at least part of the message. In some instances, only one of thecoordinating device system and the other device presents an audio orhaptic alert for the message.

In some embodiments, a mobile device system is provided. The system caninclude a detection module for receiving a first message that wasforwarded to the mobile device system by a coordinating device. Themessage can be associated with a first app for which the coordinatingdevice is to handle message forwarding. The detection module can furtherbe for receiving a second message from a source. In some instances, thesource is not the coordinating device. The message can be associatedwith a second app for which the coordinating device is not to handlemessage forwarding. The system can also include an alert coordinationmodule for determining that another device is to handle alertpresentation for the first message. The system can further include anoutput module for suppressing, in response to determining that anotherdevice is to handle alert presentation for the first message, apresentation of a non-visual alert for the first message and forpresenting a non-visual alert for the second message.

In some instances, a system is provided that includes a coordinatingdevice system disclosed herein and a mobile device system disclosedherein. In some instances, a system is provided that includes acoordinating device disclosed herein and a mobile device disclosedherein.

In some embodiments, a computer-implemented method can be provided. Themethod can include detecting, at a coordinating device, a message. Themessage can be generated locally at the coordinating device or receivedat the coordinating device from a remote source. The method can alsoinclude identifying an app that is subscribed to process the message andenabling the app to process the message. The method can further includeidentifying an other electronic device. Each of the coordinating deviceand the other electronic device can be associated with a same account.The method can still further include transmitting, from the coordinatingdevice, a signal that includes the processed message to the otherelectronic device.

In some embodiments, a computer-implemented method that can includereceiving, at an electronic device, a signal transmitted from acoordinating device. The signal can include data corresponding to anevent message generated locally at the coordinating device representingan event or a received message received at the coordinating device froma remote source. Each of the coordinating device and the electronicdevice is associated with a same account. The method can further includeidentifying an app associated with the signal and enabling the app totransform, at the electronic device, the data in the signal into anotification representing the event or the received message. The methodcan also include generating a visual notification presentation for thenotification and presenting the visual notification presentation.

In some embodiments, a coordinating device can be provided that caninclude a connection component configured to transmit communicationsover one or more communication channels to other devices and one or moreprocessors coupled to the connection component. The coordinating devicecan also include a computer-readable storage medium containinginstructions, that, when executed by the one or more processors, causethe one or more processors to perform some or all actions included inone or more methods disclosed herein.

In some embodiments, an electronic device can be provided that caninclude an output component configured to output stimuli and aconnection component configured to transmit communications over one ormore communication channels to other devices. The electronic device canalso include one or more processors coupled to the output component andthe connection component and a computer-readable storage mediumcontaining instructions, that, when executed by the one or moreprocessors, cause the one or more processors to perform some or allactions included in one or more methods disclosed herein.

In some embodiments, a coordinating device system can be provided thatcan include a detection module for detecting a message. The message canbe generated locally at the coordinating device system or received atthe coordinating device system from a remote source. The coordinatingdevice system can also include a subscriber detection module foridentifying an app that is subscribed to process the message and anotification distribution module for enabling the app to process themessage; and transmitting a signal that includes the processed messageto an other electronic device. The coordinating device system canfurther include a destination identification module for identifying theother electronic device. Each of the coordinating device system and theother electronic device can be associated with a same account.

In some embodiments, a system can be provided that can include adetection module for receiving a signal transmitted from a coordinatingdevice. The signal can include data corresponding to an event messagegenerated locally at the coordinating device representing an event or areceived message received at the coordinating device from a remotesource. Each of the coordinating device and the system can be associatedwith a same account. The system can also include an app identificationmodule for identifying an app associated with the signal and another-device distribution module for enabling the app to transform thedata in the signal into a notification representing the event or thereceived message. The system can further include an output module forgenerating a visual notification presentation for the notification; andpresenting the visual notification presentation.

In some instances, a system is provided that includes a coordinatingdevice system disclosed herein and a system disclosed herein. In someinstances, a system is provided that includes a coordinating devicedisclosed herein and an electronic device disclosed herein.

The following detailed description together with the accompanyingdrawings will provide a better understanding of the nature andadvantages of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of multiple nearby devices redundantlypresenting an alert on a single message.

FIGS. 2A-2C show examples of selective presentation of an alert givenvarious device characteristics according to an embodiment of the presentinvention.

FIG. 3 shows examples of devices connected on a network to facilitatemessage distribution and/or coordinated alert presentation according toan embodiment of the present invention.

FIG. 4A shows a block diagram of a user device according to anembodiment of the invention.

FIG. 4B shows a block diagram of message forwarder according to anembodiment of the invention.

FIG. 4C shows a block diagram of alert manager according to anembodiment of the invention.

FIG. 5 is a simplified block diagram of a target device according to anembodiment of the present invention.

FIG. 6 is a simplified block diagram of a coordinating device accordingto an embodiment of the present invention.

FIG. 7 shows an example of an electronic device according to anembodiment of the present invention.

FIG. 8 depicts an example schematic diagram of a wearable electronicdevice according to an embodiment of the present invention.

FIG. 9 depicts a user wearing a sample electronic device with a secondelectronic device in his pocket.

FIG. 10 is a flow diagram of a process for receiving a message andperforming appropriate responsive actions in accordance with anembodiment of the invention.

FIG. 11 is a flow diagram of a process for determining whether toforward a message to another device in accordance with an embodiment ofthe invention.

FIG. 12 is a flow diagram of a process for enabling a subscribing app toprocess a message prior to forwarding the message to another device inaccordance with an embodiment of the invention.

FIG. 13 is a flow diagram of a process for transforming a processed inaccordance with an embodiment of the invention.

FIG. 14 is a flow diagram of a process for determining whether topresent an alert in accordance with an embodiment of the invention.

FIG. 15 is a flow diagram of a process for determining whether topresent an alert in accordance with an embodiment of the invention.

FIG. 16 is a flow diagram of a process for determining whether topresent an alert in accordance with an embodiment of the invention.

FIG. 17 is a flow diagram of a process for responding to messages whilein a do-not-disturb mode in accordance with an embodiment of theinvention.

FIG. 18 is a flow diagram of a process for responding to messages whilein a do-not-disturb mode in accordance in accordance with an embodimentof the invention.

DETAILED DESCRIPTION

Certain embodiments of the present invention can facilitate distributionof event messages across devices and coordinated alert presentation.This facilitation can reduce a number of devices that a server is tocommunicate a message to, while still allowing the message to be availedto multiple devices.

As described in further detail herein, in some embodiments, a device(e.g., a coordinating device) can detect a message or notification of amessage. For example, the device can receive the message from a serveror other device (e.g., associated with a shared user account or a paireddevice) or can locally generate the message (e.g., upon detecting a timeassociated with a calendar event, a stock price crossing a threshold ora sensor measurement crossing a threshold). For example, a daemon candetect a new notification representing the new message (e.g., on anotification board) or a signal from a server including a new message.The message can include received content (e.g., originating from anotheruser or source) and/or can represent an occurrence of an event.

Upon detecting the message, the device can identify an app associatedwith the message (e.g., an SMS app, an email app, a social-network app,etc.) and can generate a notification for the message (e.g., identifyingan associated app, a source, a time and/or part or all of the messagecontent). The device can then add the notification to a notificationboard.

A blacklist can be accessed that identifies one or more apps for whichmessages are not to be forwarded by a notification distributor on thecoordinating device. Further, a subscriber structure (e.g., table) canbe accessed that identifies whether each of one or more apps has asubscriber that will handle message distribution, such that thenotification distributor need not forward messages for those apps.

If an app for a message neither is included on the blacklist nor has adistribution-handling subscriber, the coordinating device can generate asignal based on the message and send the signal to a mobile device. Insome instances, the signal sent from the coordinating device to themobile device is a reduced and/or compressed communication. For example,a coordinating device can reduce data received from a server to excludeat least part of the data that does not apply to the mobile device(e.g., as determined based on a characteristic of the mobile device).

Message forwarding can allow a user to access messages (e.g., textmessage, voice-mail identifications, etc.) on any of a set of devices.Some embodiments of the present invention further coordinate acrossdevices such that redundant alerts (e.g. audio or haptic alerts) areinhibited. A given device can determine whether to present an alert(e.g., an audio and/or haptic alert) based, at least in part, on whethera condition is satisfied. The condition can indicate circumstances inwhich at least one device in a set of devices (e.g., each associatedwith a same user account) are to suppress (e.g., not present) an alert.Such circumstances can include, for example, detecting that the set ofdevices are physically close to each other (e.g., by determining whetherthe devices can communicate via Bluetooth technology or Bluetooth lowenergy, by comparing the devices' geographic coordinates and/or via onedevice's detection of another device's feature). To specificallyillustrate, the condition can be satisfied when the devices can bepaired via Bluetooth technology or when the devices are separated by 30feet or less. In one instance, the condition determines whether any of aset of devices is in a particular mode (e.g., indicating that the deviceis receiving user input and/or being worn).

When the condition is not satisfied, each device of a set of devices(e.g., associated with a user account) can present an alert (e.g., anaudio and/or haptic alert) of a message. When the condition issatisfied, one of the devices can be selected to present the alert.Which device is selected can depend upon evaluation of a rule, a mode ofa device (e.g., whether it is active, asleep or in a do-not-disturbmode) and/or a device priority.

In some instances, if it is determined that the condition is satisfied,further analysis can be performed to determine which of the set ofdevices is to present the alert and/or which are to suppress alerts.Presentation of an alert can then be suppressed or prevented for atleast one of the devices. The analysis can include, for example,determining which devices are in particular modes (e.g., an active modeand/or being worn) and/or evaluating devices priorities in a priorityranking. For example, if only one of the multiple devices is in anactive mode and/or detected as being worn, that device can be selectedto present the alert. If more than one device (e.g., in a set of devicesthat are physically near each other and associated with a user account)is in an active mode and/or detected as being worn, the active-modeand/or worn device of a high (or highest) priority in a priority ranking(and/or hierarchy based on device characteristics, device modes orparticular devices) can be selected to present the alert. If no deviceis in an active mode and/or detected as being worn, the device of a high(or highest) priority in a priority ranking (or highest along ahierarchy) can be selected to present the alert. Devices can directly orindirectly communicate with each other to determine relative locations,modes of the devices, and/or whether to present an alert.

Additionally or alternatively, the device can determine whether topresent a visual notification presentation for the message. The visualpresentation can include, for example, an identifier of a source user, atime associated with the message, an app associated with the messageand/or some or all of the message content. Determining whether topresent the notification presentation can include determining whetheranother device (e.g., of multiple devices associated with a user accountshared with the device) has already presented the notificationpresentation for the message and/or whether a user action (e.g., viewingand/or closing the notification presentation) has already been received(e.g., at another device) for the message.

FIGS. 2A-2C show examples of selective presentation of an alert givenvarious device characteristics according to an embodiment of the presentinvention. Each of FIGS. 2A-2C show various illustrative characteristicsof multiple electronic devices and an indication as to which device(s)present an alert in response to a detection of a new message received atan account of a user.

Each device is labeled as being a mobile device or a coordinatingdevice. In some instances, a coordinating device can be a deviceassociated with a larger battery, a larger memory and/or a fasterprocessor relative to a corresponding characteristic of a mobile device.In some instances, a coordinating device is a device that receives appmessages from an app server, and/or a mobile device receives appmessages only via one or more other devices.

In some instances, a coordinating device can be a device associated witha higher priority (e.g., on a priority list that ranks devices by deviceidentifiers or device types) than a priority associated a mobile device.The priority list can be fixed (e.g., as part of an operating system) orcan be adjusted based on, for example, app data and/or user input. Thepriority list can be app-specific or can apply to all apps (e.g., suchthat an app developer can influence a priority list applicable for agiven app). Depending on the embodiment, a device's designation as beinga coordinating device or a mobile device can be fixed or can change intime or circumstance (e.g., depending on which other devices arenearby).

It will be appreciated that (in various embodiments) neither, one orboth of a coordinating device and a mobile device, as referred toherein, can be an electronic device. In some instances, one or both of acoordinating device and a mobile device can be a wearable device (e.g.,a necklace, headband, clip, belt, bracelet, watch, pair of glasses,armband, or ear piece). A device's designation as being a coordinatingdevice or a mobile device (e.g., receiving communications from acoordinating device) can be fixed or can vary in time or based on aapplicable task. For example, a particular device can be a coordinatingdevice with regard to a message-forwarding process but a mobile devicethat can be subordinate to another coordinating device with regard to analert-presentation-selection process. As another example, a particulardevice can be a coordinating device for messages that correspond to afirst app but a non-coordinating device with regard to messages thatcorrespond to a second app. Such distinction can result from the devicevarying in terms of priority across the tasks or apps. Further, adesignation may, or may not, be exclusive to other designations (e.g.,such that a device can hold multiple designations while concurrentlyperforming different tasks).

In some instances, a coordinating device can include a tablet, desktopcomputer, laptop computer, a mobile device or smart phone. In someinstances, a mobile device can include a wearable device and/or anecklace, headband, clip, belt, bracelet, watch, pair of glasses,armband, or ear piece. In some instances, a coordinating device can beof a different device type as compared to a mobile device. In variousinstances, there can be a single mobile device, a single coordinatingdevice, multiple mobile devices and/or multiple coordinating devices.Thus, there can be a one-to-one, one-to-many, many-to-one ormany-to-many relationship between coordinator and mobile devices.

While a “mobile device” can be a mobile (e.g., handheld) device, it willbe appreciated that in alternative embodiments, techniques disclosedherein can be extended to apply to a non-mobile device. For example,what is referred to herein as a mobile device can instead include asmart appliance, a smart television, or a thermostat. Further, a“coordinating device” can, but need not, be a mobile device.

Further, while a “coordinating device” can perform coordinationtechniques, it will be appreciated that in alternative embodiments,techniques disclosed herein can be extended such that the coordinatingdevice does not perform and/or does not participate in coordination.Further yet, it will be appreciated that, in some instances, a mobiledevice can perform and/or can participate in coordination. In oneexample, a mobile or non-mobile first device can perform actionsdisclosed herein and/or have functionalities disclosed herein withrespect to a “coordinating device”, and a different mobile or non-mobilesecond device can perform actions disclosed herein and/or havefunctionalities disclosed herein with respect to a “mobile device”.

Disclosures herein can pertain to communications between or coordinationamongst one or more coordinator and/or mobile devices. These devices caninclude, for example, devices associated with a same user account (e.g.,an account for an operating system, an email account, or asocial-network account) or paired devices.

In the illustration in FIG. 2A, a server 205 that hosts a serverapplication can communicate via a WiFi network 210 (or via anothernetwork, such as a LAN or short-range network) with a coordinatingdevice 215 a. Server 205 can host an app that generates and/or transmitsmessages. A message can include, for example, a message from a person(e.g., a text message, email message, voice message or call) or amessage generated in response to a detection (e.g., of a new news story,of a financial metric crossing a threshold, of a security-alarmcondition being satisfied, of a user's status change, of an appointmentstart time as being within a defined time period, etc.). The applicationcan include an email app, SMS app, social-network app, app with sharingcapability (e.g., ability to share photos, links, audio clips, audiofiles, videos, etc.), news app (e.g., configured to send notificationsof specific types of new news stories), a financial app (e.g.,configured to send notifications in response to a stock price,mutual-fund price, interest rate, etc. crossing a threshold), or acalendar app (e.g., configured to send notifications identifyingupcoming appointments, meeting invitation, invitation responses, etc.).An app hosted by server 205 can be one installed on one or morecoordinator and/or mobile devices.

Upon detecting a message (e.g., receiving a message from server 205 oranother device or detecting a local trigger), coordinating device 215 acan determine whether to forward it to one or more mobile devise 220a-b. In some instances, coordinating device 215 a can identify which appis associated with the message (e.g., by detecting an app identifier inthe message). Coordinating device 215 a can use the app identity todetermine whether messages for that app are to be forwarded to otherdevices (e.g., paired devices or other devices associated with aparticular account).

In one instance, coordinating device 215 a can determine whether thatapp is on a forwarding blacklist and/or whether there are one or moredistribution-handling subscribers for the app. The blacklist and/orsubscriber identifiers can be included in an operating system for theapp. Depending on the embodiment, the blacklist and/or subscriberidentifiers may, or may not, be adjustable such that a user or appdeveloper can modify the blacklist and/or subscriber identifiers. Forexample, in some instances, a blacklist can be fixed such that adeveloper of a new app cannot add its app to the blacklist. In otherinstances, app characteristics that can be defined by a developer can beused to dynamically determine which apps are to be included in theblacklist. In still other instances, a user of a coordinating device 215a can be allowed to add or remove apps from the blacklist. Apps can beincluded on a blacklist or associated with a subscriber when messagesare distributed across devices in a manner different than a forwardingtechnique that would otherwise apply. For example, a server can transmitthe messages for such apps to each of a set of devices, rather thanrelying on message forwarding across devices.

When it is determined that the message is to be forwarded, coordinatingdevice 215 a can generate a message to transmit to one or more mobiledevices 220. In some instances, the forwarded message differs from onereceived (e.g., from server 205). For example, coordinating device 215 acan exclude data in the received message that does not apply to mobiledevices 220 a-b. For example, coordinating device 215 a can identify oneor more characteristics (e.g., operating system, device type, screensize, app installation, browser, etc.) of one or more mobile devices andcan exclude data from a forwarded message that only applies to deviceswith other characteristics. Coordinating device 215 a can further reducethe message, for example, by applying a compression technique orreducing an image size or resolution. If appropriate, a target devicecan expand the reduced message (e.g., by decompressing it) upon receiptof the message or upon detecting user input corresponding to aninstruction to present the message.

Coordinating device 215 a can forward the message over a variety ofchannels, such as over the Internet, a LAN, or a short-range network(e.g., using Bluetooth or Bluetooth Low Energy (BTLE)). In one instance,the message is forwarded over a short-range network when coordinatingdevice 215 a is within range and/or can pair with a receiving mobiledevice 220, and the message is otherwise forwarded over WiFi network210. For example, in FIG. 2A, coordinating device 215 a can forward amessage to mobile device 220 a over a Bluetooth connection, while themessage is forwarded to mobile device 220 b over WiFi network 210.

A condition can be used to determine which (if any) of a set of devicesare to belong to a set in which one or more devices are to suppress analert corresponding to a message. The condition can include, forexample, a proximate condition which can determine whether (and which)devices are near each other. In one instance, the proximate conditioncan compare a geographical separation between a mobile device and acoordinating device (each of which can be determined, e.g., based on GPSor access signals) to a threshold. Devices can be defined to be neareach other or to be nearby devices when the distance is less than thethreshold. In one instance, the proximate condition can include afunctional assessment. For example, devices can be defined to be neareach other or to be nearby devices when a short-range connection can beestablished and/or when connection strength exceeds a threshold. Thecondition can alternatively or additionally depend on whether it isinferred that one or more devices are being used, moved or worn. In someinstances, the condition and/or device-set definition depends on devicetypes.

For example, if it is detected that a mobile device is in motion, a setcan include all mobile devices associated with a user. As anotherexample, a condition can require that at least one mobile device be nearanother device associated with a same user account.

When the condition is not satisfied and/or a device is not in a set forwhich the condition is satisfied, the device can respond to a newmessage by presenting an alert (e.g., a sound or haptic stimulus.Characteristics of the alert (e.g., whether it is sound or haptic, orparticular selection of an audio signal or haptic stimulus) can be fixedacross user accounts, can be configurable based on user input, can bethe same across message types, can vary across message types, and/or canvary based on other factors.

For example, in the illustrated scenario in FIG. 2A, mobile device 220 bassociated with a user account is not near another device associatedwith the user account. Thus, a proximate condition may not be satisfied,and mobile device 220 b can present an alert (e.g., a sound alert) inresponse to detecting a new message (e.g., forwarded by coordinatingdevice 215 a over WiFi network 210).

Meanwhile, in this illustration, a proximate condition can indicate thatcoordinating device 215 a is defined to be near mobile device 220 a.Thus, a coordinating technique can be implemented such that only one ofthese nearby devices presents an alert. Which device presents an alertcan depend on, for example, an activity mode of one or more of thedevices and/or a device priority.

In one instance, device selection amongst a set of devices (e.g., alldevices associated with a user or account and/or all devices determinedto be near each other) can be biased towards a device in an active mode.A definition of what constitutes an active mode can be fixed or can varyacross devices. A device can be defined to be in an active mode, forexample, when: a screen of the device is on, user input has beenreceived via a user interface within a defined time period (e.g., withinthe last minute), a screen of the device is unlocked, a sensor detectsthat a user is wearing the device, and/or a sensor detects that a useris holding the device. In one instance, a mode of a coordinating device215 a can be defined as “active” when its screen is unlocked, and a modeof a mobile device 220 a-b can be defined to be “active” when its screenis unlocked and the device is being worn. Other potential device modescan include one or more of: inactive (e.g., when a screen is locked,when a screen is off, when user input has not been received within adefined time period, and/or when a device is not being worn), and/orsleep (e.g., when a screen is off), locked (e.g., when a device islocked). In some instances, a device mode can be defined based on auser-definable setting. For example, a mode can include a do-not-disturbmode or a vibrate mode. It will thus be appreciated that, in someinstances, a device can be in multiple modes (e.g., active and vibrate).

In one instance, the alert can be presented by a device of highestpriority amongst a set of devices (e.g., a set of nearby devices) thatis in a particular mode (e.g., an active mode). If none of the set ofdevices is in the particular mode, the alert can be presented by thedevice of highest priority amongst the set of devices. In one instance,the alert can be presented by a coordinating device in the set ofdevices if the coordinating device is in the particular mode. If thecoordinating device is not in the particular mode, the alert can bepresented by a mobile device in the set of nearby devices if the mobiledevice is in the particular mode. If none of the set of nearby devicesis in the particular mode, the alert can be presented by thecoordinating device.

In the illustration of FIG. 2A, coordinating device 215 a can present analert of a new message while mobile device 220 a can suppress an alertfor the message (though it can detect the message as well sincecoordinating device 215 a can forward the message to the mobile devicevia a short-range connection). This device selection can be due tocoordinating device 215 a being in an active mode and due tocoordinating device 215 a being defined as a coordinating device or dueto its priority. The alert presentation by coordinating device 215 a andthe lack of alert presentation by mobile device 220 a can occurirrespective of a mode of mobile device 220 a.

In the illustration of FIG. 2B, coordinating device 215 b is not in anactive mode (e.g., and is instead in an inactive mode), though nearbymobile device 220 c is in an active mode. Because no coordinating and/orhigh-priority device is in the active mode, the presentation can be madeby a lower priority and/or mobile device if it is in an active mode.Accordingly, mobile device 220 c is shown as presenting the alert of anew message, while coordinating device 215 b can suppress an alert forthe new message.

In the illustration of FIG. 2C, neither coordinating device 215 c normobile device 220 d is in an active mode, and coordinating device 215 ccan present the alert while mobile device 220 d can suppress an alertfor the new message. This device selection between devices not in anactive mode can be due to coordinating device 215 a being defined as acoordinating device or due to its priority.

FIG. 3 shows examples of devices connected on a network to facilitatemessage distribution and/or coordinated alert presentation according toan embodiment of the present invention. Exemplary devices 305 that canreceive messages, present messages and/or present alerts of messages caninclude a mobile device 305 a (e.g., a necklace, headband, clip, belt,bracelet, watch, pair of glasses, armband, or ear piece), a phone 305 b(e.g., a smart phone), a tablet 305 c, a desktop computer 305 d and alaptop computer 305 e.

A device 305 can provide an output to inform a user of a message. Theoutput can include, e.g., a display of information, an audio signal toalert a user of a message and/or a haptic signal. A device 305 can alsoinclude an input interface via which a user can provide input. Forexample, the input can include one to initiate an action, such as anaction to: dismiss a visual notification presentation or non-visualalert, establish a pairing, send an invitation (e.g., for pairing with adevice), view a message, open an app, and/or generate a message.

Each of one or more devices 305 can communicate with a remote server 310over a connection (e.g., a wireless connection, such as WiFi network315). Server 310 can be any device that communicates with one or moreelectronic devices (e.g., associated with a user account and/or runningan app). Server 310 can host an app, as described above in relation toFIGS. 2A-2C. Server 305 can be mobile or non-mobile. Examples of serverdevices can include a smart phone, tablet computer, other handheldcomputing and/or communication device, a laptop computer, a desktopcomputer systems, a security system, an environmental control systems,and so on.

Sever 310 can store account data for each of a plurality of useraccounts in an account data store 325. Account data can include, forexample, one or more of: a user's name, a login, an email address, apassword, and a phone number. Each of two or more devices 305 a-e can beassociated with a same account. The two or more devices can includemultiple devices of a same type and/or devices of different types. Inone instance, user input (e.g., a login and password) received by eachof the two or more devices can identify a same user account. Receipt ofthe input can result in the input-receiving device being logged into anaccount. In one instance, a connection between two or more devices(e.g., a device pairing) can indicate that one of the connected devicescorresponds to a same account associated with another of the connecteddevices.

Server 310 (or another device, which can include a device 305) cantransmit a message to one or more devices 305 a-e (e.g., via WiFinetwork 315). In some instances, a device 305 a-e locally generates themessage, which can include an indication that an event is occurring,such as an alarm, calendar event, reminder, battery alert, storage-spacealert or connectivity alert. The message can be one associated with auser account and/or with the server application. In some instances, themessage can be transmitted to an incomplete subset of a set of devicesassociated with a user account. For example, a number of devices (e.g.,one), n, can be defined indicating how many devices are to receive themessage. Devices can then be ranked along a priority list, and a messagecan be delivered to the n devices with a relatively high or highestpriority. In some instances, the message can be transmitted to a subsetof devices that are associated with a particular designation (e.g., acoordinating device) and/or device type (e.g., a phone).

One or more devices 305 a-e that receive the message can then determinewhether to forward the message (e.g., based on whether an app associatedwith message is on a blacklist or has a distribution-handlingsubscribing) and can forward messages to one or more devices associatedwith a same user account. Messages can be forwarded, for example, over awireless link (e.g., WiFi network 315 and/or the Internet) and/or via ashort-range connection (e.g., Bluetooth connection 325 or a BTLEconnection). In some instances, a message can be forwarded over ashort-range connection when the short-range connection is available andotherwise over a WiFi network. In some instances, the forwarded messagecan include an indication as to the connection used to forward themessage (e.g., whether a short-range connection was used), which canprovide an indication as to whether alert coordination is to beperformed.

Devices receiving a message can determine whether one or more otherdevices associated with a user account are nearby. If so, a coordinationtechnique can be implemented to prevent each nearby device frompresenting an alert. As an alternative to redundant alerting, one ormore devices in a set of proximate devices can be selected to presentthe alert. In one instance, nearby devices communicate over ashort-range network (e.g., Bluetooth connection 325) such that one ormore devices can determine whether it is to present an alert based oncharacteristics of one or more other devices. In some embodiments,alerts are suppressed according to an additional or alternativecondition not focused on device proximity. For example, if it isdetected that a device associated with a user account (e.g., any suchdevice or one of a particular type) is in an active, mobile or wornmode, an alert can be suppressed at each of one or more other devicesassociated with the account (e.g., any such other device or one of aparticular type).

FIG. 4A shows a block diagram of a user device 404 according to anembodiment of the invention. Device 404 can include a coordinatingdevice or a mobile device. A message can be received from a messagesource, which can include, for example, a server hosting a serverapplication or another device associated with a same user account asassociated with device 404. In some instances, user device 404 locallygenerates the message (e.g., based on a rule defining when an alarm,alert or notification is to occur, which can be based on user inputdefining, for example, a calendar event or alarm).

In some instances, an app associated with the message can be running, inwhich case an app processor 406 can receive the message. In someinstances, the app can be not running, in which case a power managementunit 408 can receive the message and send it to app processor 406 suchthat the app will then begin to run.

In some instances, device 404 can include a message forwarder 410 thatcan determine whether to forward a particular message to another device.In such instances, message forwarder 410 can detect which app isassociated with a message and can determine whether the app is on ablacklist or has a subscriber (e.g., another app) that will handledistribution of messages for the app. For example, a blacklist caninclude an identification of a reminder app, a calendar app, anemergency app and/or a phone app. As another example, a mail app canhave a subscriber to handle forwarding.

When it is determined that the message is to be forwarded (e.g., becausethe app is neither on the blacklist nor has a distribution-coordinatingsubscriber), message forwarder 410 can identify other devices to forwardthe message to (e.g., other devices associated with a same user accountas one associated with device 404). In some instances, device detector412 determines whether device 404 can communicate with any of the otherdevices over a short-range connection. If so, the message can be sentaccordingly. Otherwise, the message can be sent over a WiFi connection(e.g., the Internet).

App processor 406 can also inform a notification manager 414 of themessage, and notification manager 414 can add a notification for themessage to a notification board 416. Notification board 416 canelectronically manage notifications representative of messages. Eachnotification in notification board 416 can be ranked relative to othernotifications on board 416. A notification's rank can depend, forexample, on when it is added to board 416, a message priority and/orwhich app the message corresponds to. For example, in one instance,whenever a new notification is added to board, it can be assigned alowest rank and ranks of all other notifications are shifted. In oneinstance, apps can be prioritized, such that messages from one app arenot to be ranked above (with lower rank) messages from another app. Inone instance, messages can be assigned a priority (e.g., based on amessage type and/or corresponding app), and messages with one priorityare to be ranked above messages with another priority.

A notification can include or can be associated with a time, such as atime that the notification was added to notification board 416 or a timethat a corresponding message was received. A notification can include,for example, a message identifier, part or all of a message, informationpertaining to a source of a message (e.g., a phone number, an emailaddress, or a user name), an identifier or name of an associated app,action options (e.g., view message, dismiss, snooze, etc.), and/or anexpiration time.

Notification manager 414 can also remove one or more notifications fromnotification board 416. Such removal can occur, for example, upondetecting that: a defined period of time has passed since an addition ofthe notification to board 416, a user action has closed a notification(e.g., by dismissing or interacting with a notification presentationand/or interface corresponding to an alert), a number of notificationsin board 416 has surpassed a threshold (e.g., such that one or moreolder notifications are removed), and/or a signal received from anotherdevice indicates that the notification is to be removed (e.g.,indicating that a user action received at that device closed thenotification).

Notification manager 414 can alert a notification presentation center418 when a new notification is added to notification board 416 and/orwhen a new message is received. When notification presentation center418 detects that a screen of device 404 is on, notification presentationcenter 418 can generate a visual presentation for the notification. Thevisual presentation can include, e.g., a message title or subject, partor all of a message, an identifier of an app corresponding to themessage, a time corresponding to the notification, action options,and/or source information. The presentation can be configured to bepresented over a portion of or over all of a screen of device 404.

In some instances, a presentation is initially presented in a reducedform, and an expanded notification can be presented in response to useraction. For example, a visual indicator (e.g., near an app icon or neara screen corner) can indicate that new notification presentations areavailable. If a user selects the indicator (e.g., by opening an app orclicking on or touching the indicator) more or all of one, more or allnew notification presentations (e.g., all new notification presentationscorresponding to one app or all new notification presentations) can bepresented.

In some instances, when multiple notification presentations aregenerated (in response to multiple new notifications), notificationpresentations can be stacked, such that a response to one notificationpresentation (e.g., by dismissing it) can cause another notificationpresentation to appear. An order of the notification presentations inthe stacking (e.g., influencing which notification presentation is shownfirst) can be based on ranks of the corresponding notifications. In someinstances, when multiple notification presentations are generated,notification presentations can be presented at different portions of thescreen. Each notification presentation's screen position can be based onranks of the corresponding notifications (e.g., such that notificationswith higher ranks are associated with notification presentations withpositions higher on a screen relative to other notificationpresentations).

Notification presentation center 418 can send notification presentationsto a graphical user interface (GUI) engine 420 to visually present thenotification presentations on a screen of device 404. GUI engine 420 candetect user interactions with the notification presentations, such asselection of an action option. In some instances, an action can behandled by notification presentation center 418 and notification manager414. For example, if a user dismisses a notification presentation,notification presentation center 418 can cease presentation of thenotification presentation, and notification manager 414 can remove thecorresponding notification from notification board 416. In someinstances, an action can be handled by notification presentation center418 and app processor 406. For example, if a user selects a notificationpresentation or selects a view option, notification presentation center418 can cease presentation of the notification and app processor 406 canpresent an interface for the app and/or a corresponding message.

It will thus be appreciated that, in some instances, there can be avariable delay between a first time at which notification presentationcenter 418 is informed of a new message and/or notification and a secondtime at which a corresponding notification presentation is presented.For example, a delay can be caused by a screen not being on at the firsttime, based on a presence of multiple new messages and/or notification(e.g., if a user must view one notification presentation before beingpresented another) and/or based on a delay in receiving user inputcorresponding to a request to present a notification presentation (e.g.,clicking on a notification indicator).

Notification manager 414 can also notify an alert manager 422 when a newnotification is added to notification board 416 and/or a new message isreceived. Alert manager 422 can determine whether to present an alert,such as a short-latency and/or non-visual alert (e.g., an audio and/orhaptic alert presented immediately or shortly after being notified ofthe new notification and/or message). In one instance, device detector412 determines whether a proximate condition is satisfied, therebyindicating that one or more other devices (e.g., or a user orcorresponding to a user account) are near device 404. If not, alertmanager 422 can instruct alert generator 424 to output the alert. If so,alert manager 422 can implement a coordinating technique (e.g., such asa technique described herein) to determine whether device 404 is topresent the alert. If device 404 is to present the alert, alert manager422 can instruct alert generator 424 to output the alert. Otherwise,alert manager 422 can suppress an alert (e.g., by not instructing alertgenerator 424 to output the alert).

While electronic device 404 is described with reference to particularblocks, it is to be understood that these blocks are defined forconvenience of description and are not intended to imply a particularphysical arrangement of component parts. Further, the blocks need notcorrespond to physically distinct components. Blocks can be configuredto perform various operations, e.g., by programming a processor orproviding appropriate control circuitry, and various blocks might ormight not be reconfigurable depending on how the initial configurationis obtained. Embodiments of the present invention can be realized in avariety of apparatus including electronic devices implemented using anycombination of circuitry and software. It is also not required thatevery block in FIG. 4 be implemented in a given embodiment of anelectronic device disclosed herein (e.g., a coordinating device ormobile device). For example, a device (e.g., a mobile device) can lackmessage forwarder 410.

FIG. 4B shows a block diagram of message forwarder 410 according to anembodiment of the invention. Message forwarder 426 can include adetection module 426 that can detect a message. The message can includeone generated locally at the coordinating device system (e.g., a messageidentifying that a device has that a defined time or time period (e.g.,associated with a calendar appointment) has passed), an expected weathercondition is forecasted, a news story or event has been reported, and soon).

In one instance, the message includes data pertaining to a location ofthe device or is generated in response to detecting that alocation-based condition is satisfied based on a location of the device.For example, the message can indicate that the device has entered adefined geographical region (e.g., associated with a “home” region), hascrossed a geographical border, or is within a defined distance from astore or upcoming turn in a navigation route. Such locating of thedevice and/or detecting that a location-based condition is satisfied caninclude, for example, determine which other devices (e.g., GPSsatellites, WiFi hotspots, merchant devices and/or fixed user devices)the device can communicate with, determining a delay and/or strength ofsuch communication(s), triangulating a position, estimating ageographical coordinate, and/or comparing a signal strength or delay toa threshold. In some instances, locating of the device and/or detectingthat a location-based condition is satisfied uses particular hardwareelements (e.g., a GPS receiver) in the device that may not be present inother user devices.

The message can alternatively or additionally include on a messagereceived at the coordinating device system from a remote source (e.g.,another user device or a remote server). For example, the message caninclude a text message, SMS message, email or voice message.

In some instances, an app identification module 428 can identify an appassociated with the detected message. For example, the message caninclude an identifier of the app (e.g., such that a calendar-remindermessage includes an identifier of a calendar app). The app can includeone that was (locally or remotely) at least partly responsible forgeneration and/or transmission of the message.

Message forwarder 410 can include a blacklist monitor module 430, whichcan determine whether the identified app is on a blacklist. Theblacklist can be locally stored on the device (e.g., as part of anoperating system). In some instances, the blacklist can be modified(e.g., based on input from a device user or based on installation of anapp). In some instances, it is static (e.g., such that which appsidentified on the blacklist cannot be changed based on user input or appexecution). When blacklist monitor module 430 determines that theidentified app is on a blacklist, it can refrain from transmitting themessage (or processed version thereof) to another device (e.g., anotherdevice associated with a same user account and/or a nearby device).

Message forwarder 410 can include a subscriber detection module 432 thatidentifies one or more apps subscribed to process or handle distributionof the message. In some instances, an app subscribed to process orhandle distribution of the message includes the app identified as beingassociated with the detected message. For example, a message indicatingthat a stock price crossed a threshold value can be associated with astock app, and the stock app can be subscribed to process the message.

In some instances, an app subscribed to process or handle distributionof the message includes an app different than one as being associatedwith (e.g., at least partly responsible for generation of) the message.For example, a calendar app may be subscribed to process messagesgenerated by a weather app (e.g., such that a user can re-evaluateoutdoor events).

A subscriber structure (e.g., a subscriber table) can indicate, forexample, that one is subscribed to process all messages associated witha same or different app, to process all messages associated with aparticular characteristic (e.g., associated with a particular contact ora particular calendar) and/or to process particular messages. Thus,subscriber detection module 432 can perform a look-up technique todetermine whether an identifier corresponding to (for example) the appassociated with the message, a characteristic of the message and/or anidentifier of the message; to determine whether an identifiercorresponding to the app is present in a corresponding field (e.g., atable column or row) in the structure and/or whether there are anysubscribing apps associated with the identified app associated with themessage, message characteristic or app identifier.

For example, a subscriber structure can include a table, where a firstcolumn can identify various apps at least partly responsible forgenerating a message, a second column can identify one or more appssubscribed to handle message distribution for messages of the app and athird column can identify one or more apps to handle processing of themessage for the app.

Upon a device having received a message and identified an app at leastpartly responsible for having generated the message, subscriberdetection module 432 can determine whether the app is represented in thefirst column and then determine whether and/or which apps are in thesecond and/or third columns of a matching row.

The subscriber structure can be locally stored on the device (e.g., aspart of an operating system). In some instances, the subscriberstructure can be modified (e.g., based on input from a device user orbased on installation of an app). In some instances, it is static (e.g.,such that which apps identified on the blacklist cannot be changed basedon user input or app execution).

When one or more subscribing apps are identified, a notificationdistribution module 434 can enable each or the subscribing apps (or oneor more select subscribing apps) to access (and/or process) the message.Notification distribution module 434 can transmit all or part of themessage to an app processing module 436 (e.g., associated with asubscribing app), which can be local on device 400 or remote.

In some instances, app processing module 436 can then handledistribution of (a processed or unprocessed version) the message. Thus,a subscribing app can use its own distribution rules to determine, forexample, how to distribute the message (e.g., via a remote server orrelying on a remote server to have independently transmitted the messageto each device; selecting a transmission protocol; and/or selecting adistribution time), to which device(s) to distribute the message to, andso on.

In some instances, app processing module 436 can transform or process(used interchangeably in this context) the message. The transformationor processing can include, for example, removing select content in themessage (e.g., a precise time stamp, a full source of a message or anidentifier of a generating app), condensing or compressing part or allof the message, extracting an incomplete subset of data in the messageto selectively include in the transformed message (e.g., such that atransformed message includes an identifier of a calendar event but notall of the event details or such that the transformed message includesan identifier of a text-message sender but not her particular name andnumber), generating a summary of the message, identifying an action tobe performed at another device based on content in the message, forexample, generating a new message (e.g., pursuant to a rule having acondition of detecting a particular type of message). Thus, in someinstances, a size (e.g., in terms of storage space) of the transformedor processed message is smaller than a size of the detected message. Thetransformation or processing can be performed in accordance with atransformation protocol defined, e.g., as part of an operating system,as part of code of the subscribing app, as part of code of theidentified message-associated app, and/or based on user input.

Upon transforming or processing the message, app processing module 436can (in some instances) transmit the transformed or processed message tonotification distribution module 436 or can otherwise allow fornotification distribution module 436 to access the transformed orprocessed message.

A destination identification module 438 can identify one or more otherelectronic devices to receive the transformed or processed message. Theother electronic device(s) and device 400 can each be associated with asame account, can be physically near each other, and/or can be paired.The identification of the other device(s) can be based on content in (orassociated with) the detected message, content in (or associated with)the transformed or processed message, a subscriber structure (e.g.,associating particular subscriptions or subscribing apps to particulardestination devices), and/or a search for nearby devices, a local orremote data structure identifying devices associated with a particularaccount or having a particular relationship (e.g., pairing) with eachother and/or a locally or remotely stored transmission rule (a generalrule or one specific to a device type, user account, messagecharacteristic and/or subscribing app).

As one example, a transmission rule can indicate that a coordinatingdevice is to transmit either a processed or unprocessed message to eachother device associated with a same user account so long as an appassociated with the message is not on a blacklist. When an app issubscribed to process the message, a processed version of the messagecan be transmitted. Otherwise, an unprocessed version can betransmitted.

Notification distribution module 436 can then transmit a signal thatincludes the processed (or unprocessed—when there is no subscriber app)message to the identified other destination device(s). The signal can,in some instances, include an identifier of the app associated with thedetected message and/or a subscriber app that processed or transformedthe message.

In some instances, the transmission can occur immediately (e.g., uponprocessing of the message). Notification distribution module 436 can, insome instances, determine whether the transmission was successful. If,instead, a transmission failure or time-out is detected, notificationdistribution module 436 may reattempt the transmission (e.g., for adefined time period or defined number of times or upon receiving anindication that the other device is responsive to device 400).

Upon receiving the signal, a destination device may itself use similaror complementary modules to respond to the signal. For example, thedestination device can include a detection module to detect the messagein the signal and can include an app identification module 428 thatidentifies an app associated with the app. This app may be oneassociated with the message initially detected by the transmitting appand/or a subscribing app.

In some instances, the destination device can also include anotification distribution module to enable the app to transform data inthe signal into a notification. This transformation can, in someinstances, include processing counter to that performed at thetransmitting device. For example, a transmitting device may havegenerated a condensed or summary version of a message, and a destinationdevice may then expand the version into a complete message. Theexpansion can include, for example, retrieving data stored at thedestination device (e.g., associated with the app, a characteristic ofdata in the signal, and/or a portion of data in the signal). Theretrieved data can then independently serve as a notification for themessage or can be combined with some or all of the data in the signal toform the notification. The destination device can also include an outputmodule to generate a visual notification presentation corresponding tothe message and to present the visual notification.

For example, a geolocation app on a first device can generate a messagethat a user has entered a geographical region that is to trigger aparticular reminder set up by a user using a calendar app. Thus, thecalendar app can be subscribed to process the message. An app processingmodule associated with the calendar app on the first device cantransform the message to include only an identifier of the particularreminder and an indication that a condition of the reminder has beensatisfied. The transformed message can be transmitted to another userdevice, which can then detect that the message is associated with thecalendar app. An app processing module associated with the calendar appon the second device can then retrieve from storage the identifiedreminder. An output module on the second device can then present avisual notification on a screen of the second device that includes partor all of content of the reminder.

FIG. 4C shows a block diagram of alert manager 422 according to anembodiment of the invention. Alert manager 422 can include a detectionmodule 440 that can detect a message. The message can include onegenerated locally at the coordinating device system (e.g., a messageidentifying that a device has that a defined time or time period (e.g.,associated with a calendar appointment) has passed), an expected weathercondition is forecasted, a news story or event has been reported, and soon). The message can alternatively or additionally include one receivedat the coordinating device system from a remote source (e.g., anotheruser device or a remote server). For example, the message can includeone forwarded from another user device and/or a text message, SMSmessage, email or voice message. Detection module 440 can parallel or bethe same as detection module 426 of message forwarder 410.

Upon detecting the message, an alert coordination module 444 cancommunicate with device detector 412 to determine whether a proximatecondition is satisfied. Device detector 412 can determine a locationcharacteristic for another device (e.g., associated with a same account)and use the characteristic to determine whether a proximate condition issatisfied. The location characteristic can include, for example, whetherdevice 400 can communicate with a mobile device via a particular type ofcommunication channel (e.g., over a short-range network, a Bluetoothnetwork or BTLE network), a signal strength between device 400 and amobile device over a particular type of communication channel, or adistance between device 400 and a mobile device. The proximate conditioncan be one that is satisfied, for example, when communication over aparticular type of communication channel is established, when a signalstrength is over a defined threshold, or when a separation distance isless than a defined threshold.

Device detector 412 can, in some instances, scan to determine whetherany user devices (e.g., associated with a particular account and/or of aparticular device type) can be detected over one or more particularcommunication channels (e.g., via a short-range communication channel,Bluetooth channel, or BTLE channel) and/or whether device 400 is pairedto another device (e.g., associated with a particular account and/or ofa particular device type). Detecting another device over a particularcommunication channel or detecting a paired device can be determined tocorrespond to satisfaction of the proximate condition.

Device detector 412 can, in some instances, receive informationidentifying a location characteristic of each of one or more devices(e.g., associated with a particular account and/or of a particulardevice type). For example, GPS coordinates can be determined for eachdevice (locally at the device or remotely at a server), and the GPScoordinates can be communicated to device detector 412 (e.g.,periodically, upon detecting a change in location or in response to arequest from device detector). Device detector 412 can then determinewhether any device (and/or which device(s)) is within a thresholddistance from device 400.

When the proximate condition is not satisfied, an output module 444 canpresent an alert (e.g., an audio and/or haptic alert) for the message.When the proximate condition is satisfied, an alert-coordination processcan be initiated to inhibit multiple nearby devices from redundantlypresenting alerts corresponding a single message. Which device is topresent an alert can depend on which mode each of one or more of thenearby devices are in.

A mode detection module 446 can detect a mode of the coordinatingdevice. In some instances, mode detection module 446 can determinewhether device 400 is in an active mode (e.g., by determining whether ascreen of the device is on, whether the device is unlocked, whetherinput has been received within a defined time period, whether the deviceis within a defined orientation space and/or elevation region and/orwhether sensor data indicates that the device is being worn).

When it is determined that a coordinating device is in an active mode,an output module 444 can present an alert for the message. For example,an audio or haptic stimulus can be presented. Further, an alertcoordination module 448 can transmit a signal to each of one or moreother devices (e.g., those for which the proximate condition wassatisfied) indicating that the receiving device is to suppress (e.g.,not present) an alert for the message (e.g., to not present any alert,any non-visual alert, any haptic alert or any audio alert). The signalcan include an identifier for the message and/or of the coordinatingdevice.

When it is determined that a coordinating device is not in an activemode (e.g., when mode detection module 446 detects that the coordinatingdevice is in a sleep mode and/or is not in the active mode), alertcoordination module 448 can transmit a signal to another device (e.g.,one for which the proximate condition was satisfied), the signalcorresponding to an invitation to present an alert for the message. Thesignal can include an identifier for the message and/or of thecoordinating device.

A detection module on the receiving device can detect the signal and analert coordination module on the receiving device can identify theinvitation to present the alert. Whether the receiving device acceptsthe invitation can depend on a mode of the receiving device. A modedetection module at the receiving device can identify a mode of thedevice (e.g., whether it is in an active mode, sleep mode ordo-not-disturb mode). If the device is in an active mode ordo-not-disturb mode, an alert coordination module can transmit a signalback to the coordinating device identifying an acceptance of thealert-presentation invitation. If the device is in an active mode, analert can be presented via an output module of the device. If the deviceis in a do-not-disturb mode, the output module can suppress presentationof the alert.

Returning to the coordinating device, upon transmitting the invitationsignal, alert coordination module 448 can then monitor for a responsesignal from the other device. If a signal is received indicating thatthe other device will handle presentation of an alert for the message,output module 444 can suppress presentation of an alert for the messageat the coordinating device (e.g., by not presenting an audio alert,haptic alert and/or visual alert for the message).

If a signal is received from the other device indicating that the otherdevice will not handle presentation of an alert for the message and/orif no signal is received responsive to the invitation within a definedtime period, output module 446 can present an alert for the message.

Mode detection module 444 can also determine whether device 400 is in ado-not-disturb mode. A do-not-disturb mode can correspond to a mode(e.g., set in response to corresponding user input or to a rule, such asone defined by a user) during which at least some (or all) audio and/orhaptic stimuli are not to be presented. For example, when a device is ina do-not-disturb mode, audio and/or haptic stimuli that would otherwisebe triggered, via execution of one or more select apps (or all apps), byevents (e.g., receiving a call, message or notification) can besuppressed. When it is determined that a coordinating device is in ado-not-disturb mode, the coordinating device may suppress an alert forthe message and also send a signal to one or more other devices (e.g.,for which the proximate condition is satisfied) indicating that they areto also suppress presenting an alert for the message.

It will be appreciated that, in some instances, audio and/or hapticalerts outputs initiated by execution of one or more particular apps(e.g., a device-finding and/or emergency app) are not to be affected bya do-not-disturb mode (e.g., as determined based on a device setting orconfiguration, instructions for the app and/or user input). For example,a do-not-disturb mode may prevent a device from presenting a soundresponsive to a new email but may allow a sound to be presented upondetecting that a user is remotely executing software to find the device.In these situations—where the do-not-disturb effect is selective—it willbe appreciated that disclosures herein relating to coordinated effortsto respect such a mode may be limited to apply to the apps and/or eventsthat are to be influenced by the mode. Thus, a device may, in essence,determine whether it is in a do-not-disturb mode on an app-specificbasis.

FIG. 5 is a simplified block diagram of a mobile device 500 (e.g.,implementing mobile device 220 a, 220 b, 220 c and/or 220 d) accordingto an embodiment of the present invention. Mobile device 500 can includeprocessing subsystem 502, storage subsystem 504, user interface 506, oneor more connection components (e.g., RF interface 508 and/or connectorinterface 510), power subsystem 512, environmental sensors 514, andstrap sensors 516. Mobile device 500 can also include other components(not explicitly shown).

Storage subsystem 504 can be implemented, e.g., using magnetic storagemedia, flash memory, other semiconductor memory (e.g., DRAM, SRAM), orany other non-transitory storage medium, or a combination of media, andcan include volatile and/or non-volatile media. In some embodiments,storage subsystem 504 can store media items such as audio files, videofiles, image or artwork files; information about a user's contacts(names, addresses, phone numbers, etc.); information aboutgame-performance assessments and/or games that a user previouslyparticipated in; information about a user's scheduled games,appointments and events; notes; and/or other types of information,examples of which are described below. In some embodiments, storagesubsystem 504 can also store one or more application programs (or apps)534 to be executed by processing subsystem 502 (e.g., video gameprograms, personal information management programs, media playbackprograms, interface programs associated with particular host devicesand/or host device functionalities, etc.).

User interface 506 can include any combination of input and outputdevices. A user can operate input devices of user interface 506 toinvoke the functionality of mobile device 500 and can view, hear, and/orotherwise experience output from mobile device 500 via output devices ofuser interface 506.

Examples of output devices include display 520, speakers 522, and hapticoutput generator 524. Display 520 can be implemented using compactdisplay technologies, e.g., LCD (liquid crystal display), LED(light-emitting diode), OLED (organic light-emitting diode), or thelike. In some embodiments, display 520 can incorporate a flexibledisplay element or curved-glass display element, allowing mobile device500 to conform to a desired shape. One or more speakers 522 can beprovided using small-form-factor speaker technologies, including anytechnology capable of converting electronic signals into audible soundwaves. In some embodiments, speakers 522 can be used to produce tones(e.g., beeping or ringing) and can but need not be capable ofreproducing sounds such as speech or music with any particular degree offidelity. Haptic output generator 524 can be, e.g., a device thatconverts electronic signals into vibrations; in some embodiments, thevibrations can be strong enough to be felt by a user wearing mobiledevice 500 but not so strong as to produce distinct sounds.

Examples of input devices include microphone 526, touch sensor 528, andcamera 529. Microphone 526 can include any device that converts soundwaves into electronic signals. In some embodiments, microphone 526 canbe sufficiently sensitive to provide a representation of specific wordsspoken by a user; in other embodiments, microphone 526 can be usable toprovide indications of general ambient sound levels without necessarilyproviding a high-quality electronic representation of specific sounds.

Touch sensor 528 can include, e.g., a capacitive sensor array with theability to localize contacts to a particular point or region on thesurface of the sensor and in some instances, the ability to distinguishmultiple simultaneous contacts. In some embodiments, touch sensor 528can be overlaid over display 520 to provide a touchscreen interface(e.g., touchscreen interface 403 of FIG. 4), and processing subsystem504 can translate touch events (including taps and/or other gesturesmade with one or more contacts) into specific user inputs depending onwhat is currently displayed on display 520.

Camera 529 can include, e.g., a compact digital camera that includes animage sensor such as a CMOS sensor and optical components (e.g. lenses)arranged to focus an image onto the image sensor, along with controllogic operable to use the imaging components to capture and store stilland/or video images. Images can be stored, e.g., in storage subsystem504 and/or transmitted by mobile device 500 to other devices forstorage. Depending on implementation, the optical components can providefixed focal distance or variable focal distance; in the latter case,autofocus can be provided. In some embodiments, camera 529 can bedisposed along an edge of a face member e.g., the top edge, and orientedto allow a user to capture images of nearby objects in the environmentsuch as a bar code or QR code. In other embodiments, camera 529 can bedisposed on the front surface of a device face member, e.g., to captureimages of the user. Zero, one, or more cameras can be provided,depending on implementation.

In some embodiments, user interface 506 can provide output to and/orreceive input from an auxiliary device such as a headset. For example,audio jack 530 can connect via an audio cable (e.g., a standard 2.5-mmor 3.5-mm audio cable) to an auxiliary device. Audio jack 530 caninclude input and/or output paths. Accordingly, audio jack 530 canprovide audio to the auxiliary device and/or receive audio from theauxiliary device. In some embodiments, a wireless connection interfacecan be used to communicate with an auxiliary device.

Processing subsystem 502 can be implemented as one or more integratedcircuits, e.g., one or more single-core or multi-core microprocessors ormicrocontrollers, examples of which are known in the art. In operation,processing system 502 can control the operation of mobile device 500. Invarious embodiments, processing subsystem 504 can execute a variety ofprograms in response to program code and can maintain multipleconcurrently executing programs or processes. At any given time, some orall of the program code to be executed can be resident in processingsubsystem 504 and/or in storage media such as storage subsystem 504.

Through suitable programming, processing subsystem 502 can providevarious functionality for mobile device 500. For example, in someembodiments, processing subsystem 502 can execute an operating system(OS) 532 and various applications 534 such as a phone-interfaceapplication, a text-message-interface application, a media interfaceapplication, a fitness application, and/or other applications. In someembodiments, some or all of these application programs can interact witha host device, e.g., by generating messages to be sent to the hostdevice and/or by receiving and interpreting messages from the hostdevice. In some embodiments, some or all of the application programs canoperate locally to mobile device 500. For example, if mobile device 500has a local media library stored in storage subsystem 504, a mediainterface application can provide a user interface to select and playlocally stored media items.

Processing subsystem 502 can also execute a code for one or morecomponents of device 404. For example, processing subsystem 502 canexecute a notification manager code 536 (which can be part of OS 532 orseparate as desired). Execution of notification manager code 536 cancause mobile device 500 to detect a new message and/or add, re-rankand/or remove one or more notifications to a notification board.Execution of notification manager code 536 can further cause anotification presentation center and/or alert manager to be notified ofa notification. In some instances, notification manager 536 furtherincludes code that, when executed, evaluates whether a particularmessage is to be forwarded to another device and/or coordinates anypre-forwarding processing of the message (e.g., by identifying asubscriber app to process the message).

Processing subsystem 502 can also or alternatively execute anotification presentation-center code 537 (which can be part of OS 532or separate as desired). Execution of notification presentation centercode 537 can cause mobile device 500 to determine whether, when and/orhow to present a visual notification corresponding to a notificationand/or message. For example, execution can result in a determination asto where, on a screen, a visual notification or visual notificationindicator is to be presented on a screen and/or when a notificationpresentation is to be presented in a sequence of notificationpresentations.

Processing subsystem 502 can also or alternatively include an alertmanager code 538 (which can be part of OS 532 or separate as desired).Execution of alert manager code 538 can cause mobile device 500 todetermine whether, when and/or how to present an alert (e.g., anon-visual alert) corresponding to a notification and/or message. Insome instances, execution of alert manager code 538 can cause mobiledevice 500 to communicate with another device (e.g., a coordinatingdevice). For example, a communication from the other device can includean invitation to present an alert and/or a communication to the otherdevice can identify a mode of mobile device 500 and/or whether an alerthas been or will be presented.

RF (radio frequency) interface 508 can allow mobile device 500 tocommunicate wirelessly with various devices (e.g., a server orcoordinating device). RF interface 508 can include RF transceivercomponents such as an antenna and supporting circuitry to enable datacommunication over a wireless medium, e.g., using Wi-Fi (IEEE 802.11family standards), Bluetooth (a family of standards promulgated byBluetooth SIG, Inc.), or other protocols for wireless datacommunication. In some embodiments, RF interface 508 can implement aBluetooth LE (Low energy) proximity sensor 509 that supports proximitydetection through an estimation of signal strength and/or otherprotocols for determining proximity to another electronic device. Insome embodiments, RF interface 508 can provide near-field communication(“NFC”) capability, e.g., implementing the ISO/IEC 18092 standards orthe like; NFC can support wireless data exchange between devices over avery short range (e.g., 20 centimeters or less). RF interface 508 can beimplemented using a combination of hardware (e.g., driver circuits,antennas, modulators/demodulators, encoders/decoders, and other analogand/or digital signal processing circuits) and software components.Multiple different wireless communication protocols and associatedhardware can be incorporated into RF interface 508.

Connector interface 510 can allow mobile device 500 to communicate withvarious devices (e.g., a server or coordinating device) via a wiredcommunication path, e.g., using Universal Serial Bus (USB), universalasynchronous receiver/transmitter (UART), or other protocols for wireddata communication. In some embodiments, connector interface 510 canprovide a power port, allowing mobile device 500 to receive power, e.g.,to charge an internal battery. For example, connector interface 510 caninclude a connector such as a mini-USB connector or a custom connector,as well as supporting circuitry. In some embodiments, the connector canbe a custom connector that provides dedicated power and ground contacts,as well as digital data contacts that can be used to implement differentcommunication technologies in parallel; for instance, two pins can beassigned as USB data pins (D+ and D−) and two other pins can be assignedas serial transmit/receive pins (e.g., implementing a UART interface).The assignment of pins to particular communication technologies can behardwired or negotiated while the connection is being established. Insome embodiments, the connector can also provide connections for audioand/or video signals, which can be transmitted to or from another devicein analog and/or digital formats.

In some embodiments, connector interface 510 and/or RF interface 508 canbe used to support synchronization operations in which data istransferred from a another device (e.g., a coordinating device) tomobile device 500 (or vice versa). For example, a user can be able tocustomize settings and other information for mobile device 500. Whileuser interface 506 can support data-entry operations, a user can find itmore convenient to define customized information on a separate device(e.g., a tablet or smartphone) that has a larger interface (e.g.,including a real or virtual alphanumeric keyboard), then transfer thecustomized information to mobile device 500 via a synchronizationoperation. Synchronization operations can also be used to load and/orupdate other types of data in storage subsystem 504, such as mediaitems, application programs, personal data, and/or operating systemprograms. Synchronization operations can be performed in response to anexplicit user request and/or automatically, e.g., when wireless device500 resumes communication with a particular host device or in responseto either device receiving an update to its copy of synchronizedinformation.

Environmental sensors 514 can include various electronic, mechanical,electromechanical, optical, or other devices that provide informationrelated to external conditions around mobile device 500. Sensors 514 insome embodiments can provide digital signals to processing subsystem502, e.g., on a streaming basis or in response to polling by processingsubsystem 502 as desired. Any type and combination of environmentalsensors can be used; shown by way of example are accelerometer 542, amagnetometer 544, a gyroscope 546, and a GPS receiver 548.

Some environmental sensors can provide information about the locationand/or motion of mobile device 500. For example, accelerometer 542 cansense acceleration (relative to freefall) along one or more axes, e.g.,using piezoelectric or other components in conjunction with associatedelectronics to produce a signal. Magnetometer 544 can sense an ambientmagnetic field (e.g., Earth's magnetic field) and generate acorresponding electrical signal, which can be interpreted as a compassdirection. Gyroscopic sensor 546 can sense rotational motion in one ormore directions, e.g., using one or more MEMS (micro-electro-mechanicalsystems) gyroscopes and related control and sensing circuitry. GlobalPositioning System (GPS) receiver 548 can determine location based onsignals received from GPS satellites. In some instances, data detectedfrom one or more environmental sensors can be used to identify a gestureindicative of particular input. For example, rather than using atouchscreen to select a notification action and/or dismiss an alert ornotification presentation, this information can be conveyed by aparticular arm movement.

Other sensors can also be included in addition to or instead of theseexamples. For example, a sound sensor can incorporate microphone 526together with associated circuitry and/or program code to determine,e.g., a decibel level of ambient sound. Temperature sensors, proximitysensors, ambient light sensors, or the like can also be included.

Strap sensors 516 can include various electronic, mechanical,electromechanical, optical, or other devices that provide information asto whether mobile device 500 is currently being worn. Data from thestrap sensors and/or other sensors can be used to infer whether mobiledevice 500 is being worn (e.g., by comparing one or more data values toa threshold). In some embodiments, certain features of mobile device 500can be selectively enabled or disabled depending on whether mobiledevice 500 is currently being worn

Power subsystem 512 can provide power and power management capabilitiesfor mobile device 500. For example, power subsystem 514 can include abattery 540 (e.g., a rechargeable battery) and associated circuitry todistribute power from battery 540 to other components of mobile device500 that require electrical power. In some embodiments, power subsystem512 can also include circuitry operable to charge battery 540, e.g.,when connector interface 510 is connected to a power source. In someembodiments, power subsystem 512 can include a “wireless” charger, suchas an inductive charger, to charge battery 540 without relying onconnector interface 510. In some embodiments, power subsystem 512 canalso include other power sources, such as a solar cell, in addition toor instead of battery 540.

In some embodiments, power subsystem 512 can control power distributionto components within mobile device 500 to manage power consumptionefficiently. For example, power subsystem 512 can automatically placedevice 500 into a “hibernation” state when strap sensors 516 or othersensors indicate that device 500 is not being worn. The hibernationstate can be designed to reduce power consumption; accordingly, userinterface 506 (or components thereof), RF interface 508, connectorinterface 510, and/or environmental sensors 514 can be powered down(e.g., to a low-power state or turned off entirely), while strap sensors516 are powered up (either continuously or at intervals) to detect whena user puts on mobile device 500. As another example, in someembodiments, while mobile device 500 is being worn, power subsystem 512can turn display 520 and/or other components on or off depending onmotion and/or orientation of mobile device 500 detected by environmentalsensors 514.

Power subsystem 512 can also provide other power managementcapabilities, such as regulating power consumption of other componentsof mobile device 500 based on the source and amount of available power,monitoring stored power in battery 540, generating user alerts if thestored power drops below a minimum level, and so on.

In some embodiments, control functions of power subsystem 512 can beimplemented using programmable or controllable circuits operating inresponse to control signals generated by processing subsystem 502 inresponse to program code executing thereon, or as a separatemicroprocessor or microcontroller.

It will be appreciated that mobile device 500 is illustrative and thatvariations and modifications are possible. For example, strap sensors516 can be modified (or eliminated), and mobile device 500 can include auser-operable control (e.g., a button or switch) that the user canoperate to provide input. Controls can also be provided, e.g., to turnon or off display 520, mute or unmute sounds from speakers 522, etc.Mobile device 500 can include any types and combination of sensors andin some instances can include multiple sensors of a given type.

In various embodiments, a user interface can include any combination ofany or all of the components described above, as well as othercomponents not expressly described. For example, in some embodiments,the user interface can include, e.g., just a touchscreen, or atouchscreen and a speaker, or a touchscreen and a haptic device. Wherethe mobile device has an RF interface, a connector interface can beomitted, and all communication between the mobile device and otherdevices can be conducted using wireless communication protocols. A wiredpower connection, e.g., for charging a battery of the mobile device, canbe provided separately from any data connection.

Further, while the mobile device is described with reference toparticular blocks, it is to be understood that these blocks are definedfor convenience of description and are not intended to imply aparticular physical arrangement of component parts. Further, the blocksneed not correspond to physically distinct components. Blocks can beconfigured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how the initialconfiguration is obtained. Embodiments of the present invention can berealized in a variety of apparatus including electronic devicesimplemented using any combination of circuitry and software. It is alsonot required that every block in FIG. 5 be implemented in a givenembodiment of a mobile device.

A coordinating device such as one or more of coordinating devices 215a-215 c can be implemented as an electronic device using blocks similarto those described above (e.g., processors, storage media, userinterface devices, data communication interfaces, etc.) and/or otherblocks or components. FIG. 6 is a simplified block diagram of acoordinating device 600 (e.g., implementing one or more of coordinatingdevices 215 a-215 c) according to an embodiment of the presentinvention. Coordinating device 600 can include processing subsystem 602,storage subsystem 604, user interface 606, one or more connectioncomponents (e.g., RF interface 608 and/or a connector interface, whichis not shown) power subsystem 612, and environmental sensors 614.Coordinating device 600 can also include other components (notexplicitly shown). Many of the components of coordinating device 600 canbe similar or identical to those of mobile device 500 of FIG. 5.

For instance, storage subsystem 604 can be generally similar to storagesubsystem 504 and can include, e.g., using magnetic storage media, flashmemory, other semiconductor memory (e.g., DRAM, SRAM), or any othernon-transitory storage medium, or a combination of media, and caninclude volatile and/or non-volatile media. Like storage subsystem 504,storage subsystem 604 can be used to store data and/or program code tobe executed by processing subsystem 602.

User interface 606 can include any combination of input and outputdevices. A user can operate input devices of user interface 606 toinvoke the functionality of coordinating device 600 and can view, hear,and/or otherwise experience output from coordinating device 600 viaoutput devices of user interface 606. Examples of output devices includedisplay 620, speakers 622, and haptic output generator 624. Examples ofinput devices include microphone 626, touch sensor 628, and camera 629.These input and output devices can be similar to output devicesdescribed above with reference to FIG. 5.

Processing subsystem 602 can be implemented as one or more integratedcircuits, e.g., one or more single-core or multi-core microprocessors ormicrocontrollers, examples of which are known in the art. In operation,processing system 602 can control the operation of coordinating device600. In various embodiments, processing subsystem 602 can execute avariety of programs in response to program code and can maintainmultiple concurrently executing programs or processes. At any giventime, some or all of the program code to be executed can be resident inprocessing subsystem 602 and/or in storage media such as storagesubsystem 604.

Through suitable programming, processing subsystem 602 can providevarious functionality for coordinating device 600. For example, in someembodiments, processing subsystem 602 can execute an operating system(OS) 632 and various applications 634 such as a phone-interfaceapplication, a text-message-interface application, a media interfaceapplication, a fitness application, and/or other applications. In someembodiments, some or all of these application programs can interact witha mobile device, e.g., by generating messages to be sent to the mobiledevice and/or by receiving and interpreting messages from the mobiledevice. In some embodiments, some or all of the application programs canoperate locally on coordinating device 600.

In some embodiments, processing subsystem 602 can execute one or more ofa notification manager code 636, a notification presentation center code637 and an alert manager code 638 (each of which can be part of OS 632or separate as desired). In some instances, one or more of these codescan operate similarly to or complementary to corresponding code storedon mobile device 500.

For example, execution of notification manager code 636 can causecoordinating device 600 to detect a new message (e.g., received from aserver or other user device or locally generated) and/or add, re-rankand/or remove one or more notifications to a notification board.

Execution of notification manager code 636 can further cause anotification presentation center and/or alert manager to be notified ofa notification. Further, notification manager code 636 can include adistribution code that determines whether to forward a notificationand/or message to another device (e.g., mobile device 500). For example,execution of the distribution code can cause coordinating device 600 todetermine whether an app corresponding to a message or notification ison a blacklist or has at least one distribution-handling subscriber. Ifnot, the execution can cause the message or notification to be forwardedto one or more other devices.

As another example, execution of notification presentation center code637 can cause coordinating device 600 to determine whether, when and/orhow to present a visual notification presentation corresponding to anotification and/or message. For example, execution can result in adetermination as to where a notification presentation or notificationindicator is to be presented on a screen and/or where a notificationpresentation is to be presented in a sequence of notificationpresentations.

As yet another example, execution of alert manager code 638 can causecoordinating device 600 to determine whether, when and/or how to presentan alert (e.g., a non-visual alert) corresponding to a notificationand/or message. In some instances, execution of alert manager code 638causes coordinating device 600 to communicate with another device (e.g.,a mobile device). For example, a communication from the other device caninclude a response to an invitation to present an alert and/or acommunication to the other device can identify a mode of coordinatingdevice 600, include an invitation to present an alert and/or identifywhether an alert has been or will be presented.

RF (radio frequency) interface 608 can allow coordinating device 600 tocommunicate wirelessly with various other devices and networks. RFinterface 608 can include RF transceiver components such as an antennaand supporting circuitry to enable data communication over a wirelessmedium, e.g., using cellular voice and/or data networks, Wi-Fi (IEEE802.11 family standards). Bluetooth® (a family of standards promulgatedby Bluetooth SIG. Inc.), or other protocols for wireless datacommunication. In some embodiments, RF interface 608 can implement aBluetooth LE (Low energy) proximity sensor 609 that supports proximitydetection through an estimation of signal strength and/or otherprotocols for determining proximity to another electronic device. Insome embodiments, RF interface 608 can provide near-field communication(“NFC”) capability, e.g., implementing the ISO/IEC 18092 standards orthe like; NFC can support wireless data exchange between devices over avery short range (e.g., 20 centimeters or less). RF interface 608 can beimplemented using a combination of hardware (e.g., driver circuits,antennas, modulators/demodulators, encoders/decoders, and other analogand/or digital signal processing circuits) and software components.Multiple different wireless communication protocols and associatedhardware can be incorporated into RF interface 608.

Environmental sensors 614 can include various electronic, mechanical,electromechanical, optical, or other devices that provide informationrelated to external conditions around coordinating device 600. Sensors614 in some embodiments can provide digital signals to processingsubsystem 602, e.g., on a streaming basis or in response to polling byprocessing subsystem 602 as desired. Any type and combination ofenvironmental sensors can be used; shown by way of example is a GPSreceiver 648. This sensor can operate similarly to the correspondingsensor in mobile device 500 described above. Other sensors can also beincluded in addition to or instead of these examples, such astemperature sensors, proximity sensors, ambient light sensors, ambientsound (or noise) sensors, or the like.

Power subsystem 612 can provide power and power management capabilitiesfor coordinating device 600. For example, power subsystem 612 caninclude a battery 640 (e.g., a rechargeable battery) and associatedcircuitry to distribute power from battery 640 to other components ofcoordinating device 600 that require electrical power. In someembodiments, power subsystem 612 can also include circuitry operable tocharge battery 640, e.g., when an electrical connector (not shown) isconnected to a power source. In some embodiments, power subsystem 612can include a “wireless” charger, such as an inductive charger, tocharge battery 640 without relying on a physical connector. In someembodiments, power subsystem 612 can also include other power sources,such as a solar cell, in addition to or instead of battery 640.

In some embodiments, power subsystem 612 can control power distributionto components within coordinating device 600 to manage power consumptionefficiently. For example, when coordinating device 600 is in an inactivestate (not interacting with a user), power subsystem 612 can placedevice 600 into a low-power state, e.g., by powering off variouscomponents of user interface 606, RF interface 608, and/or environmentalsensors 614. Power subsystem 612 can also provide other power managementcapabilities, such as regulating power consumption of other componentsof coordinating device 600 based on the source and amount of availablepower, monitoring stored power in battery 640, generating user alerts ifthe stored power drops below a minimum level, and so on.

In some embodiments, control functions of power subsystem 612 can beimplemented using programmable or controllable circuits operating inresponse to control signals generated by processing subsystem 602 inresponse to program code executing thereon, or as a separatemicroprocessor or microcontroller.

It will be appreciated that coordinating device 600 is illustrative andthat variations and modifications are possible. In various embodiments,other controls or components can be provided in addition to or insteadof those described above. Any device capable of interacting with anotherdevice (e.g., mobile and/or mobile device) to facilitate pairing ofproximate devices, to forward messages and/or to coordinate messagealerts can be a coordinating device.

Further, while coordinating device 600 is described with reference toparticular blocks, it is to be understood that these blocks are definedfor convenience of description and are not intended to imply aparticular physical arrangement of component parts. Further, the blocksneed not correspond to physically distinct components. Blocks can beconfigured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how the initialconfiguration is obtained. Embodiments of the present invention can berealized in a variety of apparatus including electronic devicesimplemented using any combination of circuitry and software. It is alsonot required that every block in FIG. 6 be implemented in a givenembodiment of a coordinating device.

Communication between one or more mobile devices, one or morecoordinating devices and a server can be implemented according to anycommunication protocol (or combination of protocols) that both devicesare programmed or otherwise configured to use. In some instances,standard protocols such as Bluetooth protocols can be used. In someinstances, a custom message format and syntax (including, e.g., a set ofrules for interpreting particular bytes or sequences of bytes in adigital data transmission) can be defined, and messages can betransmitted using standard serial protocols such as a virtual serialport defined in certain Bluetooth standards. Embodiments of theinvention are not limited to particular protocols, and those skilled inthe art with access to the present teachings will recognize thatnumerous protocols can be used.

In certain embodiments, an electronic device (e.g., device 500 or 600)may include one or more haptic modules for providing haptic feedback tothe user. The embodiments described herein may relate to or take theform of one or more haptic actuators suitable to provide perceivablehaptic feedback. Such actuators may include an electromagnetic coil, apermanent magnet or other magnetic field source. The magnetic field mayinduce motion in a mass of the haptic actuator by exerting a Lorentzforce on the mass when the coil is energized. A direction of currentthrough the coil determines the direction of motion of the mass, whilethe strength of the magnetic field determines the velocity of the massand thus the magnitude of the haptic output.

In general, haptic actuators implemented in some embodiments may beconfigured to maximize or enhance resultant mechanical energy, given avery compact form factor of the electronic device.

In one embodiment, the haptic actuator may have a mass at leastpartially disposed within the coil when the mass is in a rest state.This mass may include two magnets of opposing polarities implemented asa magnet array affixed within a frame; the frame may provide extraweight to the mass and thus a stronger haptic output may be generated. Ashaft may extend through the mass such that the mass may freely slide onthe shaft.

The magnet array may generate a radial magnetic field that interactswith the magnetic field of the coil when the coil is energized by acurrent. The Lorentz force resulting from the interaction of themagnetic fields causes the mass to move along a shaft in a firstdirection. Reversing current flow through the coil reverses the Lorentzforce. As a result, the magnetic field or force on the central magnetarray is also reversed and the mass may move in a second direction.Thus, mass may move in both directions along the shaft, depending on thedirection of current flow through the coil. Passing an alternatingcurrent through the coil may cause the central magnet array to move backand forth along a shaft. This motion may induce a motion in the housingof the actuator, which in turn may induce a motion in the housing of theelectronic device.

In order to prevent the central magnet array from being attracted to theshaft, which could increase friction between the two and therebyincrease the force necessary to move the central magnet array and frame,the shaft may be formed from a non-ferritic material such as tungsten,titanium, stainless steel, or the like, and the mass may slide along theshaft on bearings.

The actuator also may have structures that provide restoring force tothe mass. For example, a spring may be located at either end of theshaft. As the mass impacts the spring, the spring compresses and storeskinetic energy. This kinetic energy may be released to return the massalong the shaft, thereby sending it to or near its initial startingposition. The kinetic energy in the spring(s) may cooperate with thecoil to move the magnet in such a fashion.

Although a linear actuator has been described herein, it should beappreciated that other types of actuators may be used in differentembodiments. For example, some embodiments may employ a rotary actuator,a piezoelectric actuator, or any other suitable linear or non-linearactuator. Likewise, certain embodiments may employ multiple actuatorsworking in concert.

In certain embodiments, an electronic device (e.g., device 500 or 600)may include one or more acoustic modules for transmitting and receivingacoustic energy. The acoustic module may be a speaker or microphone ofan electronic device, as non-limiting examples.

The device housing may include a first acoustic port that is coupled tothe acoustic module. In some instances, the acoustic module isconfigured to function as either a microphone or a speaker element forthe device. However, for the purposes of the following description, theacoustic module is described as a speaker element or module. Theacoustic port includes first and second orifices that facilitate thetransmission of audible signals from a the coustic module to the user'sear. In this example, the orifices extend through the housing andacoustically connect internal components of the acoustic module with theexternal environment. In other examples, a single acoustic port mayinclude more than two orifices or a single orifice. In some embodiments,the acoustic port may also include a housing structure (“umbrella”),screen mesh or other protective element configured to inhibit ingress ofliquid or other foreign matter.

The umbrella structure generally prevents water or fluid from directlyimpacting the acoustic module. In one example, the acoustic portincludes one or more orifices or openings that are offset with respectto an acoustic chamber of the module (e.g., the space between umbrellaand mesh and including the one or more orifices. The umbrella structuremay be formed into the outer surface of the case or housing. Forexample, the umbrella structure may be formed from the material locatedbetween two or more orifices or openings that are offset with respect tothe acoustic chamber.

Further, certain embodiments may shape the acoustic chamber to reducethe likelihood that water accumulates in the chamber or other portion ofthe orifice. A screen may separate the acoustic cavity from the externalenvironment and may impede the ingress of liquids or other foreignmaterial from the external environment into the acoustic cavity. Forexample, the sidewalls of the orifice(s) may extend substantially to thesurface of the screen in order to reduce surface tension of water in theorifice or chamber. Likewise, an exterior of the orifice may bechamfered to reduce surface tension of a liquid adjacent the orifice andthus facilitate liquid removal.

In the present example, the acoustic module is a speaker module. Aspeaker acoustic module may include various components for producing andtransmitting sound, including a diaphragm, a voice coil, a centermagnet, and side magnets/coils. In a typical implementation, thediaphragm is configured to produce sound waves or an acoustic signal inresponse to a stimulus signal in the voice coil. That is, a modulatedstimulus signal in the voice coil causes movement of the diaphragm.Movement of the diaphragm creates sound waves, which propagate throughthe acoustic cavity of acoustic module and eventually out the port tothe exterior environment. In some cases, the acoustic cavity functionsas an acoustical resonator having a shape and size that is configured toamplify and/or dampen sound waves produced by movement of the diaphragm.

In certain embodiments, the acoustic module also includes structuralsupport elements, such as an end wall and base. These elements mayprovide physical support for the speaker elements; various yokes,connectors and the like may also provide such support. Certain otherembodiments may include a gasket to seal the interior of the deviceagainst the environment. It should be appreciated that the structurerecited herein is meant as an example and not a limitation. For example,in alternative embodiments, the acoustic cavity may be formed fromadditional components or may be formed from a single component.

The acoustic module described above is provided as one example of a typeof speaker acoustic module; other embodiments may use different types ofspeakers, microphones and the like. Further, although described in thecontext of a speaker, the foregoing is equally applicable to amicrophone and many embodiments may likewise incorporate a microphone.

Embodiments described herein may take the form of, be incorporated in,or operate with a suitable electronic device. One example of such adevice is shown in FIG. 7 and takes the form of a wearable mechanism. Asshown, the mechanism may be worn on a user's wrist and secured theretoby a band. The mechanism may have a variety of functions including, butnot limited to: keeping time; monitoring a user's physiological signalsand providing health-related information based on those signals;communicating (in a wired or wireless fashion) with other electronicdevices, which may be different types of devices having differentfunctionalities; providing alerts to a user, which may include audio,haptic, visual and/or other sensory output, any or all of which may besynchronized with one another, visually depicting data on a display;gather data form one or more sensors that may be used to initiate,control, or modify operations of the device; determine a location of atouch on a surface of the device and/or an amount of force exerted onthe device, and use either or both as input; accepting voice input tocontrol one or more functions; accepting tactile input to control one ormore functions; and so on.

Alternative embodiments of suitable electronic devices include a phone;a tablet computing device; a portable media player, and so on. Stillother suitable electronic devices may include laptop/notebook computers,personal digital assistants, touch screens, input-sensitive pads orsurfaces, and so on.

FIG. 8 depicts an example schematic diagram of a wearable electronicdevice. As shown in FIG. 8, the device 700 includes one or moreprocessing units 761 that are configured to access a memory 762 havinginstructions stored thereon. The instructions or computer programs maybe configured to perform one or more of the operations or functionsdescribed with respect to the device 700. For example, the instructionsmay be configured to control or coordinate the operation of the variouscomponents of the device. Such components include, but are not limitedto, display 702, one or more input/output components 763, one or morecommunication channels 764, one or more sensors 765, a speaker 706,microphone 707, and/or one or more haptic feedback devices 766. In someembodiments the speaker and microphone may be combined into a singleunit and/or may share a common port through a housing of the device.

The processing units 716 of FIG. 8 may be implemented as any electronicdevice capable of processing, receiving, or transmitting data orinstructions. For example, the processing units 716 may include one ormore of: a microprocessor, a central processing unit (CPU), anapplication-specific integrated circuit (ASIC), a digital signalprocessor (DSP), or combinations of such devices. As described herein,the term “processor” is meant to encompass a single processor orprocessing unit, multiple processors, multiple processing units, orother suitably configured computing element or elements.

In some embodiments the electronic device may accept a variety of bands,straps, or other retention mechanisms (collectively, “bands”). Thesebands may be removably connected to the electronic device by a lug thatis accepted in a recess or other aperture within the device and locksthereto. The lug may be part of the band or may be separable (and/orseparate) from the band. Generally, the lug may lock into the electronicdevice's recess and thereby maintain connection between the band anddevice. The user may release a locking mechanism to permit the lug toslide or otherwise move out of the recess. In some embodiments, therecess may be formed in the band and the lug may be affixed orincorporated into the device.

A user may change combinations of bands and electronic devices, therebypermitting mixing and matching of the two categories. It should beappreciated that devices having other forms and/or functions may includesimilar recesses and may releasably mate with a lug and/or bandincorporating a lug. In this fashion, an ecosystem of bands and devicesmay be envisioned, each of which is compatible with another. A singleband may be used to connect to devices, as one further example; in suchembodiments the band may include electrical interconnections that permitthe two devices to transmit signals to one another and thereby interactwith one another.

In many embodiments, the electronic device may keep and display time,essentially functioning as a wristwatch among other things. Time may bedisplayed in an analog or digital format, depending on the device, itssettings, and (in some cases) a user's preferences. Typically, time isdisplayed on a digital display stack forming part of the exterior of thedevice.

The display stack may include a cover element, such as a cover glass,overlying a display. The cover glass need not necessarily be formed fromglass, although that is an option; it may be formed from sapphire,zirconia, alumina, chemically strengthened glass, hardened plastic andso on. Likewise, the display may be a liquid crystal display, an organiclight-emitting diode display, or any other suitable display technology.Among other elements, the display stack may include a backlight in someembodiments.

The device also may comprise one or more touch sensors to determine alocation of a touch on the cover glass. A touch sensor may beincorporated into or on the display stack in order to determine alocation of a touch. The touch sensor may be self-capacitive in certainembodiments, mutual-capacitive in others, or a combination thereof.

Similarly, the device may include a force sensor to determine an amountof force applied to the cover glass. The force sensor may be acapacitive sensor in some embodiments and a strain sensor in otherembodiments. In either embodiment, the force sensor is generallytransparent and made form transparent materials, or is located beneathor away from the display in order not to interfere with the view of thedisplay. The force sensor may, for example, take the form of twocapacitive plates separated by silicone or another deformable material.As the capacitive plates move closer together under an external force,the change in capacitance may be measured and a value of the externalforce correlated from the capacitance change. Further, by comparingrelative capacitance changes from multiple points on the force sensor,or from multiple force sensors, a location or locations at which forceis exerted may be determined. In one embodiment the force sensor maytake the form of a gasket extending beneath the periphery of thedisplay. The gasket may be segmented or unitary, depending on theembodiment.

The electronic device may also provide alerts to a user. An alert may begenerated in response to: a change in status of the device (one exampleof which is power running low); receipt of information by the device(such as receiving a message); communications between the device andanother mechanism/device (such as a second type of device informing thedevice that a message is waiting or communication is in progress); anoperational state of an application (such as, as part of a game, or whena calendar appointment is imminent) or the operating system (such aswhen the device powers on or shuts down); and so on. The number andtypes of triggers for an alert are various and far-ranging.

The alert may be auditory, visual, haptic, or a combination thereof. Ahaptic actuator may be housed within the device and may move linearly togenerate haptic output (although in alternative embodiments the hapticactuator may be rotary or any other type). A speaker may provideauditory components of an alert and the aforementioned display mayprovide visual alert components. In some embodiments a dedicated light,display, or other visual output component may be used as part of analert.

The auditory, haptic and/or visual components of the alert may besynchronized to provide an overall experience to a user. One or morecomponents may be delayed relative to other components to create adesired synchronization between them. The components may be synchronizedso that they are perceived substantially simultaneously; as one example,a haptic output may be initiated slightly before an auditory outputsince the haptic output may take longer to be perceived than the audio.As another example, a haptic output (or portion thereof) may beinitiated substantially before the auditory output but at a weak or evensubliminal level, thereby priming the wearer to receive the auditoryoutput.

The example electronic device may communicate with other electronicdevices either through a wired connection or wirelessly. Data may bepassed between devices, permitting one device to relay information toanother; control another; employ another's sensors, outputs, and/orinputs; and so on. FIG. 9 depicts a user 810 wearing a sample electronicdevice 700 with a second electronic device 730 in his pocket. Data maybe wirelessly transmitted between the electronic devices 700, 730,thereby permitting the user 810 to receive, view, and interact with datafrom the second device 730 by means of the first electronic device 700.Thus, the user 810 may have access to part or all of the second device'sfunctionality through the first electronic device 700 without actuallyneeding to interact directly with the second device.

Further, the electronic devices 700, 730 may cooperate not only to sharedata but to share functionality as well. For example, one of the twodevices may incorporate a sensor, application, or function that theother lacks. The electronic device lacking such capabilities may requestthem from the other device, which may share wirelessly with therequesting device. Thus, multiple devices may operate together toprovide expanded functions, software, access and the like between thetwo and ultimately to a user. As one non-limiting example, theelectronic device 700 may be unable to place or receive telephone callswhile the second device 730 may be able to do so. A user may nonethelessmake and/or receive calls through the first device 700, which may employthe second device 730 to actually place or accept a call.

As another non-limiting example, an electronic device 700 may wirelesslycommunicate with a sales terminal nearby, thus permitting a user toquickly and efficiently conduct a transaction such as selling, buying,or returning a good. The electronic device may use near fieldcommunications technology to perform these and other functions.

As mentioned above, a band may be connected to two electronic devicesand may serve as a wired communication path between the two. As anotherexample, the devices may communicate wirelessly, thereby permitting onedevice to relay information from a second to a user. This latter examplemay be particularly useful when the second is inaccessible.

Certain embodiments may incorporate one or more biometric sensors tomeasure certain physiological characteristics of a user. The device mayinclude a photoplesymogram sensor to determine a user's heart rate orblood oxygenation levels, for example. The device may also or insteadinclude electrodes to measure the body impedance of a user, which maypermit the device to estimate body fat percentages, the body'selectrical activity, body impedance, and so on. Also include bloodpressure, ultraviolet exposure, etc. Depending on the sensorsincorporated into or associated with the electronic device, a variety ofuser characteristics may be measured and/or estimated, therebypermitting different health information to be provided to a user.

Certain embodiments may be wirelessly charged. For example, an inductivecharging base may transmit power to an inductive receiver within thedevice in order to charge a battery of the device. Further, by varyingthe inductive field between the device and base, data may becommunicated between the two. As one simple non-limiting example, thismay be used to wake the base from a low-power sleep state to an activecharging state when the device is placed on the base. Other wirelesscharging systems also may be used (e.g., near field magnetic resonanceand radio frequency). Alternatively, the device also may employ wiredcharging through electrodes.

In certain embodiments, the device may include a rotary input, which maytake the form of a crown with a stem. The crown and stem may be rotatedto provide the rotary input. Rotation of the stem and/or crown may besensed optically, electrically, magnetically, or mechanically. Further,in some embodiments the crown and stem may also move laterally, therebyproviding a second type of input to the device.

The electronic device may likewise include one or more buttons. Thebutton(s) may be depressed to provide yet another input to the device.In various embodiments, the button may be a dome switch, rocker switch,electrical contact, magnetic switch, and so on. In some embodiments thebutton may be waterproof or otherwise sealed against the environment.

Various embodiments may include or otherwise incorporate one or moremotion sensors. A motion sensor may detect motion of the device andprovide, modify, cease, or otherwise affect a state, output, or input ofthe device or associated applications based on the motion. Asnon-limiting examples, a motion may be used to silence the device oracknowledge an alert generated by the device. Sample motion sensorsinclude accelerometers, gyroscopic sensors, magnetometers, GPS sensors,distance sensors, and so on. Some embodiments may use a GPS sensor tofacilitate or enable location and/or navigation assistance.

As shown in FIG. 8, the device 700 may also include one or more acousticelements, including a speaker 706 and/or a microphone 707. The speaker706 may include drive electronics or circuitry and may be configured toproduce an audible sound or acoustic signal in response to a command orinput. Similarly, the microphone 707 may also include drive electronicsor circuitry and is configured to receive an audible sound or acousticsignal in response to a command or input. The speaker 706 and themicrophone 707 may be acoustically coupled to port or opening in thecase that allows acoustic energy to pass, but may prevent the ingress ofliquid and other debris.

Certain embodiments may incorporate an ambient light sensor. The ambientlight sensor may permit the device to sense a brightness of itsenvironment and adjust certain operational parameters accordingly. Forexample, the electronic device may modify a brightness of a display inresponse to the sensed ambient light. As another example, the electronicdevice may turn the display off if little or no light is sensed for aperiod of time.

These and other functions, operations, and abilities of the electronicdevice will be apparent upon reading the specification in its entirety.

FIG. 10 is a flow diagram of a process 1000 for receiving a message andperforming appropriate responsive actions in accordance with anembodiment of the invention. Part or all of process 1000 can beimplemented in a coordinating device and/or a mobile device.

Process 1000 can begin at block 1005 where a signal can be received froma source. The source can be, e.g., a server, a coordinating device, amobile device, etc. In some instances, the source is a component of adevice performing part or all of process 1000. The signal can identify anew message. The message can include, for example, a message from aperson (e.g., a text message or message from a social network), amessage identifying an event (e.g., a news story, a price change, a taskcompletion, or a weather forecast), a message identifying an upcoming orcurrent appointment or task, and so on. The message can be associatedwith an app (e.g., such that execution of the app had requested themessage or connected a device executing part or all of process 1000 withanother device or server). The signal can, for example, include themessage, identify an associated app, identify a party (e.g., user)associated with the message, and/or identify a time of the message.

At block 1010, an app associated with the new message can be identified.The app can be identified based on, for example, an identifier of an appin the message, an identifier of a source in the message and/or a sourceof the message.

At block 1015, a notification can be generated based on the signal, andthe notification can be added to a notification board. The notificationcan include any electronic representation of the message, and thenotification board can include any structure to organize, package ormanage one or more such notifications. The notification can include, forexample, part or all of the message, a time (e.g., that the message wasreceived or notification was generated), an identifier of a source ofthe message, an identifier of app corresponding to the message, apriority of the message, an expiration time for the message and/ornotification and/or allowable actions. Adding the notification to thenotification board can include ranking the notification relative toother notifications in the board.

A determination can be made at block 1020 as to whether to forward themessage (or processed version thereof) to one or more other devices. Theone or more other devices can include, for example, paired devices,other devices associated with a same user account (e.g., for anoperating system, a service, an app, an email account, or a socialnetworking account) as is associated with a device performing all orpart of process 1000, and/or one or more devices identified in a locallyor remotely stored list (e.g., which can also identify the device thatis performing all or part of process 1000).

This determination can depend on the app identified at block 1010. Inone instance, a default is to forward the message to the one or moreother devices unless a condition is met. The condition can include, forexample, the app being on a forwarding blacklist and/or the app beingassociated with a distribution-handling subscriber.

If it is determined that the message is to be forwarded, process 1000can continue to block 1025 where the message (or processed versionthereof) can be forwarded to the one or more other devices. Forwardingthe message can include, for example, transmitting the received signalto the one or more other devices or transmitting a processed version ofthe signal to the one or more other devices. The processed version caninclude part or all of the message and/or the generated notification.The processed version can include additional and/or different data ascompared to the received message, and/or the processed version can be areduced version where some of the data present in the received signal isnot in the processed version. The message can be forwarded over anetwork (e.g., a wireless network), such as over the Internet or over ashort-range (e.g., Bluetooth) connection. In some instances, differentnetworks can be used to forward the message to different devices, and/ordifferent processed versions of the message can be forwarded todifferent devices (e.g., the different versions corresponding todifferent features of the devices).

At block 1030, it can be determined as to whether to present an alertcorresponding to the message. This determination can be based on whethera device performing part or all of process 1000 is in a do-not-disturbmode. Such a mode can be on with a result of, for example: blocking ofall audio and/or haptic alerts, blocking of all audio and/or hapticalerts corresponding to phone calls and text messages, blocking of allaudio and/or haptic alerts when the device is locked, blocking of allaudio and/or haptic alerts corresponding to phone calls and textmessages when the device is locked, blocking of select audio and/orhaptic alerts, blocking of select audio and/or haptic alertscorresponding to phone calls and text messages, blocking of select audioand/or haptic alerts when the device is locked, and/or blocking ofselect audio and/or haptic alerts corresponding to phone calls and textmessages when the device is locked. In some instances, when the deviceis in do-not-disturb mode, the determination at block 1030 can be thatan alert corresponding to the message is not to be presented.

The determination can also or alternatively be based on, for example,whether a proximate condition is satisfied for one or more otherdevices. The one or more other devices can 15 include, for example, adevice paired to a device performing all or part of process 1000, adevice associated with a same user account (e.g., for an operatingsystem, a service, an app, an email account, or a social networkingaccount) as is a device performing all or part of process 1000, and/or adevice identified in a locally or remotely stored list (e.g., which canalso identify the device that is performing all or part of process1000). The proximate condition can include, for example, determiningwhether a device performing all or part of process 1000 is: within athreshold distance from one or more of the other devices, paired withone or more of the other devices, and/or sharing a network (e.g., anInternet account) with one or more of the other devices).

When evaluation of the proximate condition indicates that no otherdevices are near the device performing part or all of process 1000(“near” as defined by the condition), a determination can be made topresent the alert on the device. When it is determined that theproximate condition is satisfied, a set of devices can be defined toinclude the device performing all or part of process 1000 and the one ormore other devices determined to be proximate to the device. Within thisset, a portion of the devices (e.g., a single device) can be selected topresent the alert. The selection can be based on, for example, a mode ofeach of one or more devices in the set (e.g., to bias the selectiontowards devices in an active mode) and/or a device priority (e.g., tobias the selection towards coordinating devices over mobile devices).

The determination can also or alternatively be based on whether anotherdevice (e.g., a device or higher priority or a mobile device) isdetected to be in a particular mode (e.g., an active mode or worn mode).Such detection can occur as a result of receiving a message from theother device or an intermediate device (e.g., a server) identifying theother device's mode or an indication as to whether it is in theparticular mode. For example, a device performing all or part of process1000 can determine that an alert is not to be presented when a messageis received indicating that it is inferred (e.g., based on sensorreadings) that an associated mobile device is being worn.

In some instances, the determination at block 1030 can depend on otherfactors, such as whether a recent device movement variable (e.g., tobias selection towards a device that has recently moved and/or toinhibit alert presentation amongst a device that has not moved for atleast a threshold period of time).

If it is determined that the alert is to be presented, process 1000 cancontinue to block 1035 where the alert can be presented. The alert caninclude a stimulus to quickly notify a user of the message. In someinstances, the alert is non-visual, such as an audio signal (e.g., toneor ringtone) or a haptic stimulus (e.g., a vibration). In someinstances, the alert is visual, such as a flash on a screen, turning ascreen from off to on, increasing a screen's brightness or presenting anicon. In some instances, a message content and/or associated app is notidentifiable based on the alert. When it is determined that an alert isto be presented, the alert can be presented irrespective of whether anyuser input corresponding to a request for information was received.Thus, the alert can be presented even if a user does not have aparticular app open, did not affirmative answer or open a message,and/or—in some instances—unlock and/or interact with a screen of thedevice.

At blocks 1040-1045, it can be determined whether to present anotification presentation for the message, such as a visual notificationpresentation. This determination can be based on, e.g., whether anotification is pending or has already been closed and/or whether thedevice performing part or all of process 1000 is in an active mode.Specifically, at block 1040, it can be determined whether a notificationcorresponding to the new message is or is to be closed (or, conversely,whether it remains pending). A notification can be closed, e.g., upondetermining that an expiration time for a message or correspondingnotification or notification has passed or upon receiving informationfrom another device indicating that the notification is to be closed.For example, the information can be received upon another device havingpresented a same or similar notification presentation for the message orupon detecting particular user input (e.g., dismissing the notification,viewing the message or postponing the notification). In response to anaffirmative determination at block 1040, process 1000 can conclude untilanother signal identifying another message is received.

In response to a determination that a notification corresponding to thenew message is not closed (and instead remains pending), process 1000can continue to decision block 1045 where it can be determined whether adevice performing part or all of process 1000 is in an active mode. Thisdetermination can include, for example, determining whether a screen ofthe device is on, whether user input has been received via an interfaceof the device within a threshold time period, whether the device isunlocked, whether it is detected that the device is being worn and/orwhether one or more apps are being run on the device. It will beappreciated that a definition of“active mode” can vary, e.g., acrossdevice types.

When it is determined that the device is in an active mode, anotification presentation for the message can be presented. Presentingthe notification presentation can include visually presenting thepresentation on part or all of a device screen. The notificationpresentation can include part or all of a message (e.g., a subject), asource, an identifier of another user associated with the message (e.g.,a name, user name, email address or phone number), an associated app, atime, a priority ranking, and/or one or more potential actions (e.g., toopen the associated app, to view the full message, to respond to themessage, to dismiss the notification and/or to postpone thenotification).

When it is determined that the device is not in active mode (e.g., thata screen of the device is on), process 1000 can return to block 1040.Blocks 1040-1045 can be repeated until it is determined that thenotification is closed or the device is in an active mode.

It will be appreciated that process 1000 need not performed in entiretyand a particular implementation of process 1000 can depend on, e.g., atype of device, user preferences, message type, device mode, etc. Forexample, blocks 1020-1025 can be removed from process 1000 forparticular device types (e.g., wearable devices). As another example, inone instance, a notification need not be generated at block 1015 (e.g.,if the signal received at block 1005 includes the notification). It willalso be appreciated that blocks in process 1000 need not be performed inthe depicted order. For example, in one instance, blocks 1020-1025 canbe performed after blocks 1030-1050.

It will further be appreciated that, in some instances, differentportions of process 1000 (or any other process disclosed herein) can behandled by different software, device components or devices. Forexample, in some instances, a daemon performs some or all of blocks1015-1050, and in some embodiments a plugin performs some or all ofblocks 1015-1050. Appropriate handling can, in some instances, depend onthe app identified as being associated with the message. For example, adaemon may determine that a processed version of a first message of afirst app is to be forwarded and may process the first message andforward the processed first message; meanwhile, a plugin may determinethat a processed version of a second message of a second app is to beforwarded and may process the second message and forward the processedsecond message.

As illustrated in FIG. 10 and the corresponding description, multipledeterminations relating to a message can depend on a mode of each of oneor more devices. For example, each of the determination at block 1030 asto whether to present a (e.g., non-visual) alert for a message and adetermination as to whether to present a notification presentation for amessage can depend on a mode of a device performing process 1000. Whenmultiple mode assessments are performed (e.g., to determine whether topresent an alert and also to determine whether to present a notificationpresentation, the assessments may, or may not, be of a same time. Forexample, in one instance, it can be determined that a device is both topresent an audio alert and a visual notification for a message if thescreen of the device is on (e.g., but not otherwise). As anotherexample, an alert-presentation rule can indicate that a device is onlyto present an alert for a message if it's screen is on and if aninvitation is received from another device to present the alert, whereasa notification-presentation rule can indicate that the device is topresent a notification presentation for the message if the screen is on.As yet another example, it can be determined that a device is to presenta visual notification for a message when the screen is on, but that itis to present an audio or haptic alert for the message when the screenis on and the device is not in a do-not-disturb mode.

Process 1000 can exemplify how a single device can perform a variety ofactions and/or action combinations depending on circumstances. Forexample, a single device can forward a first message associated with anapp but neither present an alert for the message nor present anotification presentation for the message. The same device can laterforward a second message associated with a same or different app andalso present an alert for the message.

FIG. 11 is a flow diagram of a process 1100 for determining whether toforward a message to another device in accordance with an embodiment ofthe invention. Part or all of process 1100 can be implemented in acoordinating device. Process 1100 can begin at block 1105 where acoordinating device can register with a server or other device. Theserver can include one hosting a server application corresponding to anapp on the coordinating device and/or one hosting an operating system,one managing cross-device accounts.

At block 1110, a first signal can be received from the server or otherdevice. The first signal can identify a new message. For example, thenew message can include one associated with an app hosted by the server.The new message can include one generated based on, for example, events(e.g., news, financial markets, a current grade, weather, softwareupdate availability or promotions) and/or a communication (e.g.,identifying a message, an SMS message, an email, a phone call, a photo,a video, a link and/or an audio clip) from a device associated with adifferent user from one associated with the coordinating device.

A notification corresponding to the new message can be added to anotification board of the coordinating device at block 1115. Block 1115can parallel block 1015 in process 1000. An app associated with themessage can be identified at block 1120. Block 1120 can parallel block1010 in process 1000.

At block 1125, it can be determined whether the app is identified on ablacklist. When the app is not identified on the blacklist, process 1100can continue to block 1130 where it can be determined whether the apphas one or more subscribers for handling forwarding of messages.

The blacklist and/or any subscriber identifications can be storedlocally on the coordinating device or remotely stored (e.g., such thatthe coordinating device can then communicate with a remote device torequest the blacklist or subscriber identification or information as towhether a particular app is on the blacklist or has adistribution-handling subscriber). In some instances, the blacklistand/or subscriber identifications can be constructive in that theinformation can be built based on a combination of stored data. Forexample, data associated with individual app files can separatelyindicate whether each app is blacklisted.

Which apps are on the blacklist and/or apps' subscribers can be fixed ordynamic (e.g., such that apps can dynamically be added to or removedfrom the blacklist, and/or such that whether an app has a subscriber canchange and/or subscriber identities can change). The blacklist and/or asubscriber list for one or more apps can be defined, in part or inwhole, by a developer of an operating system on the coordinating device,a developer of each of one or more apps and/or a user of thecoordinating device. Whether an app is present on a blacklist or has adistribution-handling subscriber can depend on a person's decision(e.g., a user input) and/or one or more factors pertaining to the app.One example of a factor is whether a limit is to be imposed as to whichdevices (or device types) are to receive messages for the app and/or howdevices are to receive the messages. Such limits can be based on, forexample, device capabilities (e.g., a processing power or whether theapp is downloaded on the device), privacy restrictions associated withthe app) and/or cross-device applicability of messages associated withthe app. Another example of a factor is a target latency for deliveringmessages. Rather than relying on message forwarding, diverging messagetransmission from the server to multiple devices can have the potentialto hasten a speed at which each device receives the message.

When the app neither is on the blacklist nor has one or more subscribersfor handling message distribution, process 1100 can continue to block1135 where a second signal identifying the new message is generated. Thesecond signal can be the same as and/or can include part or all of thedata of the first signal. The second signal can include part or all ofthe new message and/or the generated notification. The second signal caninclude an identifier of the coordinating device. The second signal caninclude an indication as to how the message is being sent (e.g., over ashort-range network or not). The second signal can include anidentification of the app associated with the message.

In some instances, second signal can be at least partly reduced relativeto the first signal in that some of the data in the first signal can beexcluded from the second signal. This reduction can be performed basedon, for example, information known about a receiving device (e.g., toexclude signal data include for a device with another characteristic).The reduction can be performed by using a compression technique. In someinstances, part or all of a message is excluded from the second signal.The reduced signal can still indicate that a new message was receivedand can allow a receiving device to alert a user of the message. If auser then requests to view the message, the receiving device can thenretrieve it.

At block 1140, the second signal can be forwarded to one or moredevices. The one or more devices can include one or more mobile devices,which can include (for example) one(s) paired to the coordinating deviceand/or associated with a same user account as associated with thecoordinating the device. The transmission can occur over one or morenetworks, such as the Internet or a short-range connection (e.g.,Bluetooth or BTLE).

When it is determined that the app either is on the blacklist or has asubscriber for handling message forwarding, process 1100 can continue toblock 1145 where a second signal identifying the new message is nottransmitted to the mobile device. Thus, in some instances, the mobiledevice may not receive the message or can receive it from anothersource.

While process 1100 includes an evaluation of two conditions to determinewhether to forward a message, it will be appreciated that otherembodiments can include a different number of conditions and/ordifferent conditions. For example, a condition can depend on a proximityof the coordinating device to another device. In one instance, block1130 can be removed from process 1100.

In some instances, a subscriber app is one to handle distribution of amessage to one or more other devices. In such cases, a notificationdistribution module need not perform its routine distribution functions.In some instances, a subscriber app is one to process a message prior toa transmission to another device. For example, the subscriber app maygenerate a summary or compressed version of the message.

FIG. 12 is a flow diagram of a process 1200 for enabling a subscribingapp to process a message prior to forwarding the message to anotherdevice in accordance with an embodiment of the invention. Part or all ofprocess 1200 can be implemented in a coordinating device.

At block 1205, a message can be detected. Detecting the message caninclude detecting receipt of the message from, for example, a server orother device (e.g., associated with a shared user account or a paireddevice) or detecting a locally generated the message (e.g., the messagehaving been generated using an app installed on or executing on a deviceperforming part or all of process 1200). The message can includereceived content (e.g., originating from another user or source) and/orcan represent an occurrence of an event.

At block 1210, an app (or plugin) associated with the message can beidentified. The app can be one at least partly responsible for havinggenerated the message or transmitted it to a device performing process1200. The app can be identified, for example, based on a source of themessage or content in the message (e.g., identifying the app).

At block 1215, an app (or plugin) subscribed to process the message canbe identified. The subscriber app can be identified by, for example,querying a subscriber structure with an identifier of the app identifiedat block 1210, an identifier of a source of the message (e.g., anidentifier of another device), with a characteristic of the message(e.g., a message type) or with an identifier of the message (or usingthe identifier of the app identified at block 1210, the characteristicof the message or the identifier of the message to look up the appsubscribed to process the message). For example, a subscriber structurecan associate a particular server with a particular app, such that allmessages from that server are to be processed by the particular app. Insome instances, the message can include an identifier of the subscriberapp. In some instances, the app (or plugin) identified at block 1215 isthe same as the app (or plugin) identified at block 1210. In someinstances, they are different.

At block 1220, the app identified at block 1215 can be enabled tolocally process the message. For example, the message can be availed forlocal (or, in some instances, remote) processing by the subscriber appby, e.g., sending the message to a processing module for the subscriberapp and/or by initiating execution of the subscriber app. The processingcan be performed according to a processing protocol, which can include aprotocol for, for example, generating a summary for the message (e.g.,removing content that is common across messages of a given type and/orremoving data that is unnecessary for display on a particular devicetype). In some instances, which processing protocol is used and/or acharacteristic of the processing protocol depends on a characteristic ofthe signal or the identified app. For example, different apps may removedifferent types of information from a message.

At block 1225, the processed message can be accessed (e.g., receivedfrom an app processor). At block 1230, one or more other electronicdevices can be identified. The other electronic device(s) can includeone, more or all devices associated with a same user account asassociated with a device performing process 1200; one, more or alldevices paired with the performing device; one, more or all devices forwhich a proximate condition is satisfied and/or one, more or all devicesof a given type. In one instance, the other electronic device(s) areidentified by the subscriber app and/or based on the processing.

At block 1235, a signal with the processed message can be transmitted tothe other device(s). The signal can also include an identifier, forexample, of a device performing process 1200, an identifier of the appassociated with the message and/or an identifier of the subscriber app.

FIG. 13 is a flow diagram of a process 1300 for transforming a processedin accordance with an embodiment of the invention. Part or all ofprocess 1300 can be implemented in a mobile device.

At block 1305, a signal with data corresponding to a message can bereceived. The signal can include, in some instances, a message processedat another device (e.g., at a coordinating device), a message summary,and/or an identifier of an app. In some instances, the signal receivedat block 1305 corresponds to a signal transmitted at block 1235 inprocess 1200.

At block 1310, an app associated with the signal can be identified. Theapp can include, for example, one that was used to generate a messagesummary included in the message, one subscribed to process an initialversion of the message, one identified in the message, and/or onesubscribed to transform a processed version of the message (e.g.,included in the signal). In some instances, the app can be identified byanalyzing the signal (e.g., to extract an identifier of the app). Insome instances, the app can be identified by using a subscriberstructure, which can (or need not) be a same subscriber structure that acoordinating device may have used to process an original message. Thesubscriber structure can associate a characteristic of the message, anapp identifier (e.g., for an app at least partly responsible forinitially generating or transmitting the message or for an app thatprocessed the message), an identifier of the message, or anothervariable with one or more apps subscribed to transform a processedversion of the message. Thus, block 1310 can include looking up an appidentifier, message identifier or other variable in the subscriberstructure to identify an associated app for the message. In someinstances, part of the data in the signal can be used to identify theapp (e.g., by looking up the content in a structure). For example, asignal can identify an original source of the message, and the sourcecan be associated with (e.g., paired with) an app in a structure. Insome instances, app subscriptions are configured such that a same app(though on different devices) generates a message summary and alsotransforms the summary (e.g., into a notification or complete message).

At block 1315, the identified app can be enabled to transform themessage data into a notification. The enablement can include, forexample, availing and/or sending the data to the app to (e.g., a local)processing module for the app and/or initiating execution of the app.The transformation can be performed according to a transformationprotocol, which can include a protocol for, for example, expanding asummary for the message (e.g., by combining locally stored content orremote content associated with the message or app that is identified inthe summary or common across messages of a given type), and/orreconstituting an original message corresponding to the data. In someinstances, the transformation can include reversing some or all ofprocessing of a message that had been performed on a device having sentthe signal. In some instances, which transformation protocol is usedand/or a characteristic of the transformation protocol can depend on acharacteristic of the signal or the identified app. For example,different apps may supplement processed messages with different types ofadditional information.

To illustrate a transformation, a received signal may include anidentifier of a stock alert defined by the user. Upon receiving thesignal, a financial app on a mobile device may retrieve the identifiedstock alert, which can include a particular stock symbol and astock-price threshold. The financial app can then transform the signalinto a more complete notification that includes the stock symbol andthreshold. The financial app can even further retrieve a current priceof the stock from a remote source and include the current price in thenotification.

At block 1320, the notification can be accessed (e.g., received from theapp after the transformation). At block 1325, a visual notificationpresentation can be generated for the notification. The visualnotification can include all or part of the message and/or notification.In some instances, the visual notification includes one or more optionsthat, upon user selection of an option, causes additional information tobe presented and/or allows a user to take an action (e.g., dismiss areminder, return a call, generate and send a text message, etc.). Atblock 1330, the visual notification presentation can be presented.

FIG. 14 is a flow diagram of a process 1400 for determining whether topresent an alert in accordance with an embodiment of the invention. Partor all of process 1400 can be implemented in a coordinating device.

Process 1400 can begin at block 1405 where a message is detected.Detecting the message can include detecting receipt of the message from,for example, a server or other device (e.g., associated with a shareduser account or a paired device) or detecting a locally generated themessage (e.g., the message having been generated using an app installedon or executing on a device performing part or all of process 1200). Themessage can include received content (e.g., originating from anotheruser or source) and/or can represent an occurrence of an event.

At block 1410, a location characteristic of each of one or more mobiledevices can be determined. Determining the location characteristic caninclude, for example, determining whether any mobile devices (e.g., of aparticular type and/or associated with a particular account) is cancommunicate with the coordinating device via a particular type ofcommunication channel (e.g., a short-range network, a Bluetooth channelor a BTLE channel) and/or is within a defined distance from thecoordinating device.

At block 1415, it can be determined, using the locationcharacteristic(s), whether a proximate condition is satisfied. Theproximate condition can be one defined to determine whether any (and/orwhich) mobile devices associated with a particular user account are nearthe coordinating device and/or one defined to suppress redundant alertsfor a same message. Thus, the proximate condition can include afunctional or absolute threshold for when a mobile device is determinedto be sufficiently near a coordinating device to suppress an alert on atleast one of the devices. The proximate condition can include, forexample, an inter-device communication condition (e.g., the devices mustbe able to communicate over a particular type of communication channeland/or such channel must have an above-threshold signal strength) or adistance condition (e.g., the devices must be separated by less than adefined distance, as determined by GPS coordinates of each device oranother localization of each device). The proximate condition can befixed, dependent on a characteristic of a message, defined by an appand/or defined by a user.

When it is determined that the proximate condition is not satisfied, atblock 1420 a, the coordinating device can present an alert (e.g., anaudio and/or haptic alert) for the message. Block 1420 a can parallelblock 1035 in process 1000.

When it is determined that other proximate condition is satisfied, atblock 1425, one or more modes of the coordinating device can beidentified. Block 1425 can include, for example, determining whether thecoordinating device is in an active mode (e.g., based on whether ascreen is on, whether a device is unlocked, whether sensor dataindicates that it is being worn, an orientation of the device, anelevation of the device or a time of last input) that is indicative ofcurrent or recent usage of the device. In some instances, block 1425 canalso or alternatively 15 include determining whether the coordinatingdevice is in another mode, such as a do-not-disturb mode or a sleepmode.

At block 1430, it is determined whether the coordinating device isidentified as being in the active mode. When the coordinating device isin the active mode, process 1400 can continue to block 1420 b, where thecoordinating device can present an alert (e.g., an audio and/or hapticalert) for the message. Block 1420 b can parallel block 1035 in process1000. Additionally, a signal can be transmitted to each of one or moremobile devices (for which the proximate condition was satisfied) thatincludes an instruction to suppress presentation of an alert for themessage. This signal can cause the mobile device to, for example, notpresent any audio and/or any haptic stimulus in response to the message,not present a particular (e.g., default) audio and/or haptic stimulusfor the message, or reduce an amplitude of any presented audio and/orhaptic signal for the message. The signal can include an identifier ofthe message and/or an identifier of a corresponding notification.

When it is determined that the coordinating device is not in an activemode, process 1400 can continue to block 1440, where the coordinatingdevice can transmit a signal to a mobile device (e.g., for which theproximate condition was satisfied) with an invitation to present analert for the message at block 1240. The signal can include anidentifier of the message and/or an identifier of a correspondingnotification. In some instances, the signal can include part or all of amessage or notification itself (e.g., such that signal alert invitationcan also serve to forward the part or all of the message ornotification). The invitation can include an expiration time by which aresponse is requested.

FIG. 15 is a flow diagram of a process 1500 for determining whether topresent an alert in accordance with another embodiment of the invention.Part or all of process 1500 can be implemented in a coordinating device.

Process 1500 can begin at block 1505 where a new notification on anotification board can be detected. At block 1510, a queue itemcorresponding to the notification can be added to an alert queue. Thequeue item can include an identifier of the notification and/or anassociated message, a time (e.g., associated with the notification or atime at which the queue item was generated) and/or an app identifier.

At block 1515, one or more modes of the coordinating device can beidentified. The identification can include determining whether thecoordinating device is in an active mode based on, e.g., whether ascreen of the coordinating device is on, whether the coordinating deviceis unlocked, whether input has been received via an interface of thecoordinating device within a defined time period and/or whether amovement variable (e.g., cumulative motion over a time period or a timeof a most recent motion detection) for the coordinating device exceeds athreshold.

It can be determined, at block 1520, whether any mobile devices (e.g.,corresponding to a particular user account and/or any paired mobiledevices) are nearby. This determination can include evaluation of aproximate condition, identifying whether the coordinating device ispaired to any device, identifying a location of the coordinating deviceand/or identifying a location of one or more other devices. For example,block 1520 can include determining whether the coordinating device ispaired to any other devices.

When it is determined that no mobile devices are nearby (e.g., no mobiledevices corresponding to a particular user account are nearby or nopaired mobile devices are nearby), process 1500 can continue to block1525 a, where an alert can be presented for each item in the queue.Presentation of each alert can parallel that described at block 1035 inprocess 1000. In some instances, the alert queue can include one or moreother queue items in addition to the one added at block 1510. In someembodiments, an alert can be presented for each of two or more (or all)queue items. The alerts can be presented sequentially. In someinstances, an alert characteristic differs across multiple queue items.For example, which audio signal is presented can depend on which app aqueue item corresponds to. In some instances, alerts are the same acrossqueue items.

When it is determined that one or more mobile devices are nearby, it canbe determined at block 1530 whether the mode of the coordinating deviceis an active mode. Block 1530 can parallel block 1045 of process 1000.

When the coordinating device is in an active mode, an alert can bepresented for each item in the queue at block 1525 b. Block 1525 b canparallel block 1525 a. In some instances, a signal with a no-alertinstruction can be sent to a mobile device at block 1535. The signal canidentify one or more messages and/or notifications (e.g., a messagecorresponding to the detected new notification and/or a messagecorresponding to each queue item for which an alert was presented). Thesignal can indicate that one or more alerts were handled by thecoordinating device and/or can include an instruction not to present analert for one or more alerts.

At least partly based on a determination of a coordinating device notbeing in an active mode, the coordinating device can determinate that analert-coordinating criterion is satisfied. In such instances, a signalcan be sent to the mobile device with an invitation to present an alertfor the message at block 1540. The invitation can include an identifierof the message and/or an identifier of a corresponding notification. Insome instances, no message or notification is identified. The invitationcan include part or all of a message or notification itself (e.g., suchthat an alert invitation can also serve to forward the part or all ofthe message or notification). The invitation can include an expirationtime by which a response is requested. In some instances, the invitationcan be implied based on other signal characteristics.

At block 1545, it can be determined whether an acceptance messageresponsive to the invitation has been received from the mobile device.This determination can include determining whether an acceptance messageis received during a period of time (e.g., beginning at a time when theinvitation signal is sent). An acceptance message can indicate, forexample, that the mobile device has or will present the alert and/orthat the mobile device is in an active mode (e.g., indicating that itwill handle the alert presentation). In some instances, the acceptancemessage can include one or more alert characteristics, such as a timethat the alert was presented. In some instances, the acceptance messagecan be merely a response message without explicit alert-handling oracceptance content, though such acceptance can be inferred by thepresence of the message. If an acceptance message is received, process1500 can continue to block 1550, where the queue item added at block1510 can be removed from the queue.

If an acceptance message is not received, process 1500 can continue toblock 1525 c, where an alert can be presented for each item in thequeue. Block 1525 c can parallel block 1525 a. At block 1555, followingpresentation of an alert, one or more queue items can be removed fromthe queue. The one or more queue items can include all queue items forwhich an alert was presented.

While in process 1500, alerts can be presented for each queue item inthe queue, it will be appreciated that in other embodiments, alerts canbe presented for only a portion of the queue 15 items in the queue(which can include a single queue item or a plurality of queue items.For example, an alert can be presented only for the queue item added atblock 1510.

It will be appreciated that alert handling can depend on variousfactors, such as an app associated with a message, a device type, and/oruser preferences. In one instance, alert handling is different formessages associated with apps on a blacklist and/or having adistribution-handling subscriber (and/or messages forwarded acrossdevices) and messages associated with other apps. For example, alldevices may present alerts for the former messages. In one instance,alert handling can be independent of whether an app is on a blacklistand/or has a subscriber.

In process 1500, alert presentation can be conditioned upon a proximatecondition (e.g., at block 1520). It will be appreciated that alertpresentation in other embodiments need not involve evaluation of aproximate condition. For example, if it is detected that a device is ina particular mode, all other devices (or devices of a particular type)that are associated with a same user account can have an alertsuppressed.

Using an alert queue can be useful in situations where one or moredevices change modes between message receipts. For example, acoordinating device may not be in an active mode when a first message isreceived. Thus, it can invite a nearby mobile device to present an alertfor the first message. While the coordinating device waits to determinewhether the mobile device will present the alert, its mode can change toan active mode. Further, while waiting for a response, a second messagecan be received. At this point, the coordinating device can presentalerts for both messages quickly, such that a single device notifies auser of both (potentially related) messages.

FIG. 16 is a flow diagram of a process 1600 for determining whether topresent an alert in accordance with an embodiment of the invention. Partor all of process 1600 can be implemented in a mobile device. Process1600 can begin at block 1605 where a new message can be detected. Forexample, the message can be one received from a source, such as acoordinating device or server or the message can be locally generated.

At block 1610, it can be determined whether a coordinating device isnearby the mobile device. Block 1610 can mirror block 1520 of process1500. When it is determined that a coordinating device is not nearby, analert corresponding to the message can be presented at block 1615 a.Block 1615 a can parallel block 1035 of process 1000.

When it is determined that a coordinating device is nearby, process 1600can continue to block 1620 where a communication channel and clock canbe monitored and an alert for the message can be stalled. Monitoring thecommunication channel can include determining whether a signal with analert invitation is received (e.g., via a particular communicationchannel or any communication channel) from the coordinating device.Monitoring the clock can include, for example, starting a timer and/ordetermining whether a current time passes a threshold time (e.g.,defined as a time period plus a time at which the message was detected).Stalling the alert for the message can include at least temporarilyrefraining from presenting any (or a particular type of) alert for themessage. For example, in one instance, no audio or haptic stimulus ispresented responsive to the message detection during the refraining ofthe alert.

At block 1625, it can be determined whether a signal with an alertinvitation has been received from a coordinating device. If such asignal was not received, process 1600 can continue to block 1630 whereit can be determined whether the threshold time has passed (which caninclude determining whether a timer has expired). If it is determinedthat the threshold time has not passed, process 1600 can return to block1620 such that the mobile device can continue to wait for an invitationto present an alert.

If it is determined that the threshold time has passed, process 1600 cancontinue to block 1615 b where an alert corresponding to the message canbe presented. Block 1615 b can parallel block 1615 a and block 1035 ofprocess 1000.

If a signal with an invitation is received before the threshold time,process 1600 can continue to block 1635 where one or more modes of themobile device can be identified. The identification can includedetermining whether the mobile device is in an active mode based on,e.g., whether the mobile device is unlocked, whether a sensor readingindicates that the mobile device is being worn, whether a screen of themobile device is on, whether input has been received via an interface ofthe mobile device within a defined time period and/or whether a movementvariable (e.g., cumulative motion over a time period or a time of a mostrecent motion detection) for the mobile device exceeds a threshold.

A determination can be made at block 1640 as to whether the mobiledevice is in an active mode (e.g., whether one of the identified modesincludes or is an active mode). Block 1640 can parallel block 1530 ofprocess 1500 and/or block 1045 of process 1000.

If it is determined that the mobile device is in an active mode, amessage accepting the alert invitation can be sent to the coordinatingdevice at block 1645. An acceptance message can include characteristicsas disclosed with respect to block 1545 of process 1500.

At block 1615 c, an alert corresponding to the message can be presented.Block 1615 c can parallel block 1615 a.

When it is determined that the mobile device is not in an active mode, adeclination message can be transmitted to the coordinating device atblock 1650. The declination message can indicate that the mobile deviceis not going to or has not presented an alert for the new message and/oridentify a mode of the device. In some instances, the declinationmessage includes an invitation for the coordinating device to presentthe alert.

It will be appreciated that, as with all processes disclosed herein,process 1600 can include more or fewer or different blocks than thoseshown in FIG. 16. For example, in some instances, block 1650 can beomitted from process 1600. A lack of an acceptance message can beinterpreted to be a declination of an invitation.

FIG. 17 is a flow diagram of a process 1700 for responding to messageswhile in a do-not-disturb mode in accordance with an embodiment of theinvention. Part or all of process 1700 can be implemented in acoordinating device.

Process 1700 can begin at block 1705 where input corresponding to aninstruction to enter a do-not-disturb mode can be detected. The inputcan include, for example, a mechanical input (e.g., switching a switchor pressing a button), a touchscreen input, a voice command, or a cursorselection. In some instances, the do-not-disturb mode can include onethat corresponds to a silencing or inhibition of all audio and/or hapticalerts. In some instances, the input indicates that the mode is to applyto (for example) one or more particular apps, accounts, time periods,contacts and/or threads. In some instances, the input indicates that themode is to apply to apps, time periods, contacts and/or threads having aparticular characteristic.

At block 1710, a mode can be set to a do-not-disturb mode (e.g.,according to the applicability of the input). In some instances, adevice can be in multiple modes, such that setting a device mode to thedo-not-disturb mode does not prevent the mode from being in one or moreother modes, such as an activity mode (e.g., active, inactive, and/orasleep). Setting the mode to the do-not-disturb mode can inhibit selectstimuli from being presented on the device. For example, the mode caninhibit or prevent audio and/or haptic stimuli from being presented onthe device (in general or in response to some or all messages).

In some instances, a signal with a do-no-disturb instruction can be sentto a mobile device at block 1715. The instruction can, in someinstances, identify applicability of the mode (e.g., identifying one ormore particular apps, contacts, time periods, accounts, and/or threadsand/or a characteristic of an app, contact, time period or thread forwhich the mode is to apply and/or identifying a characteristicindicating when the mode is to apply). The mobile device can include onepaired to the coordinating device, one that is near the coordinatingdevice (as determined based on evaluation of a proximate condition)and/or one that is associated with a same user account as is associatedwith the mobile device.

A new message can be detected at block 1720. The new message can bedetected, e.g., based on a signal received from a server or otherdevice. In some instances, detecting the new message includes detectinga new notification corresponding to the message. In some instances, themessage can have an association (e.g., to an app, contact, time period,thread or account) or characteristic corresponding to the do-not-disturbmode.

At block 1725, the coordinating device can suppress presentation of analert for the message. The suppression can include not presenting anaudio and/or haptic stimulus in correspondence with the message. In someinstances, one or more visual stimuli (e.g., a screen turning on) canalso be suppressed or not performed. Depending on the embodiment, ado-not-disturb mode may, or may not, influence whether a notificationpresentation is presented for the message (e.g., such that anotification presentation for a message is not presented if the messagewas received while in the do-not-disturb mode).

In addition to not presenting the alert, suppressing an alertpresentation can include not transmitting an alert-presentationinvitation to another device. This lack of transmission can occur evenif the coordinating device is not in an active mode, which could haveotherwise prompted the coordinating device to send a signal with analert invitation to a nearby device (as described herein, particularlyin reference to process 1500). This invitation suppression can occurinstead of or in addition to the signal sent in block 1715 to instructthe mobile device to enter do-not-disturb mode. In some instances, theinvitation suppression can itself serve to cause the mobile device toeffectively partly or fully enter a do-not-disturb mode.

It will thus be appreciated that, in process 400, in some embodiments,an alert-coordination criterion can require not only that thecoordinating device not be in an active mode, but also that thecoordinating device not be in a do-not-disturb mode. In these instances,an alert invitation can be selectively sent only in instances where thecoordinating device is in neither the active mode nor the do-not-disturbmode. In other embodiments, the alert-coordination criterion onlyrequires that the coordinating device not be in one of these modes(active mode or do-not-disturb mode). In some embodiments, thealert-coordination criterion includes other mode-related requirements(e.g., requiring the device not be in a vibrate mode) or otherrequirements not relates to the device mode.

For a new message detected while in a do-not-disturb mode, in someinstances, a new queue item corresponding to the message may not beadded to a queue. In some instances, a new queue item can be added, butit can be removed even though no alert is presented for the message.

Process 1700 provides a technique by which a user can initiate ado-not-disturb mode on one device and cause other devices to similarlyenter the mode. In some instances, multiple do-not-disturb modes can beavailable, such that a user can indicate whether only one device ormultiple devices are to be in the mode.

In some instances, the mobile device can remain in the do-not-disturbmode until the mode is changed (e.g., at the mobile device orcoordinating device). If the mode is changed at the coordinating device,a second signal with a mode-changing instruction can be sent to themobile device. In some instances, the mobile device can remain in thedo-not-disturb mode until the mobile devices are no longer near eachother (as defined based on a proximate condition).

FIG. 18 is a flow diagram of a process 1800 for responding to messageswhile in a do-not-disturb mode in accordance in accordance with anembodiment of the invention. Part or all of process 1800 can beimplemented in a mobile device.

Process 1800 can begin at block 1805 where input corresponding to aninstruction to enter a do-not-disturb mode is detected. At block 1810, amode can be set to a do-not-disturb mode. Blocks 1805 and 1810 canrespectively parallel blocks 1705 and 1710 from process 1700. At block1815, a first signal can be received from a coordinating device with analert invitation.

At block 1820, a second signal with an acceptance to the invitation canbe transmitted to the coordinating device. Block 1820 can parallel block1645 in process 1600. The second signal can be sent, e.g., when themobile device is also in an active mode or irrespective of whether themobile device is in an active mode.

At block 1825, the mobile device can suppress presentation of an alertfor the message. Block 1825 can parallel block 1725 in process 1700.

Thus, the mobile device can indicate to a coordinating device that it ishandling an alert for a message even though the alert is not (in someinstances) presented due to the device being in the do-not-disturb mode.The handling indication can prevent a nearby coordinating device frompresenting an alert for the message. Thus, the mobile device can extenda reach of a do-not-disturb input.

It will be appreciated that inter-device interactions disclosed hereincan be extended to a variety of arrangements. For example, someembodiments include a coordinating device that can forward a message toa mobile device and further can be of higher priority over a mobiledevice with regard to alert presentation. In other embodiments, however,a device that forwards a message can be of lower priority relative tothe mobile device. In some embodiments, a first set of devices caninteract during a message-forwarding process and a second set of devices(which can include a device not in the first set and/or an incompletesubset of the first set) can interact during an alert-coordinationprocess such an incomplete subset of the second set presents an alertfor the message.

Further, while some disclosures relate to an interaction between twodevices, it will be appreciated that embodiments can be extended to moredevices. For example, for selection of a device in a set of devices topresent an alert, devices of sequentially lower priority can iterativelyreceive alert presentations until one is in an active mode or until itis determined that none are in an active mode.

Embodiments disclosed herein provide a variety of useful inter-devicecoordination capabilities and advantages. For example, a first devicecan conditionally forward a message to a second device. This forwardingcan be selective in terms of which apps' messages are handled byinter-device forwarding, and the selection can be based on storedapp-pertinent data (e.g., a blacklist and/or app subscriber lists).Thus, for apps for which message distribution can be appropriatelyhandled using an alternative technique, messages need not beunnecessarily forwarded.

A result of the forwarding or another occurrence (e.g., a serverdistribution of a message) can cause multiple user devices to haveaccess to information pertaining to a single message, such that a usercan view the message from any of the multiple devices. In someinstances, each device of the multiple devices or each device in anactive mode can present a notification presentation of the message.Therefore, regardless of which device the user is near, the user can benotified of the message. Meanwhile, particular devices can be selected(e.g., based on a priority list of the device and/or device modes) topresent audio and/or haptic alerts of a message. Consequentially, if auser is near several devices, redundant alerts can be avoided.

While the invention has been described with respect to specificembodiments, one skilled in the art will recognize that numerousmodifications are possible. For example, different sensors orcombinations of sensors can be substituted for those described herein. Avariety of different mobile devices and mobile devices can be used.

Some described embodiments pertain to establishing or using a pairing orother connection that enables devices to recognize each other as beingauthorized for interoperation. This can reduce the likelihood that adevice not suited to participate in a message distribution and/or alertcoordination technique will be automatically be included in performanceof the technique. Security, such as Bluetooth security, can be utilizedto provide secure communication sessions.

It will be appreciated that part or all of various processes and/ortechniques described herein can be performed by a daemon or pluginexecuting on a performing electronic device. In some instances, whetherand/or which of a daemon or plugin performs part or all of a processdepends on an app associated with a message.

For example, a daemon may detect a new message and identify acorresponding app. For some apps, the daemon may determine that the appis on a blacklist and can refrain from some or all further handling(e.g., processing, forwarding, or presenting the message), and the appcan instead handle. For example, the app can coordinate forwarding themessage or a processed version thereof using a cloud server ornear-field communication channel. For some apps, the daemon may handledetermining whether the message is to be processed and/or forwarded toanother device, whether a notification of the message is to be presentedand/or whether an alert (e.g., a non-visual alert) is to be presented.The daemon can further handle processing, forwarding, notificationpresentation and/or alert presentation. For some apps, the daemon candetermine that a plugin is to handle determining whether the message isto be processed and/or forwarded to another device, whether anotification of the message is to be presented and/or whether an alert(e.g., a non-visual alert) is to be presented. The plugin can handle oneor more of such determinations and can further handle processing,forwarding, notification presentation and/or alert presentation.

Some disclosures herein refer to an app. It will be appreciated thatsuch disclosures can be extended to additionally or alternatively relateto any other type of software, such as a plugin or extension.

The foregoing description may make reference to specific examples of amobile device and/or a coordinating device. It is to be understood thatthese examples are illustrative and not limiting; other devices can besubstituted and can implement similar functional blocks and/oralgorithms to perform operations described herein and/or otheroperations. Further, some or all of the devices can be non-mobile and/ornon-mobile.

Embodiments of the present invention, e.g., in methods, apparatus,computer-readable media and the like, can be realized using anycombination of dedicated components and/or programmable processorsand/or other programmable devices. The various processes describedherein can be implemented on the same processor or different processorsin any combination. Where components are described as being configuredto perform certain operations, such configuration can be accomplished,e.g., by designing electronic circuits to perform the operation, byprogramming programmable electronic circuits (such as microprocessors)to perform the operation, or any combination thereof. Further, while theembodiments described above may make reference to specific hardware andsoftware components, those skilled in the art will appreciate thatdifferent combinations of hardware and/or software components may alsobe used and that particular operations described as being implemented inhardware might also be implemented in software or vice versa.

Computer programs incorporating various features of the presentinvention may be encoded and stored on various computer readable storagemedia; suitable media include magnetic disk or tape, optical storagemedia such as compact disk (CD) or DVD (digital versatile disk), flashmemory, and other non-transitory media. Computer readable media encodedwith the program code may be packaged with a compatible electronicdevice, or the program code may be provided separately from electronicdevices (e.g., via Internet download or as a separately packagedcomputer-readable storage medium).

Thus, although the invention has been described with respect to specificembodiments, it will be appreciated that the invention is intended tocover all modifications and equivalents within the scope of thefollowing claims.

What is claimed is:
 1. A computer-implemented method comprising:detecting, at a coordinating device, a message; determining a locationcharacteristic of a mobile device; determining, based on the locationcharacteristic, that a proximate condition is satisfied; determiningwhether the coordinating device is in an active mode; when it isdetermined that the coordinating device is in the active mode,presenting a coordinating-device alert at the coordinating device; andwhen it is determined that the coordinating device is not in the activemode, transmitting a signal to the mobile device that corresponds to aninvitation to present a mobile-device alert corresponding to themessage.
 2. The method of claim 1, further comprising, when it isdetermined that the coordinating device is in the active mode:transmitting a signal to the mobile device that corresponds to aninstruction to suppress the mobile-device alert corresponding to themessage.
 3. The method of claim 1, further comprising: detecting, at thecoordinating device, an other message; determining that the proximatecondition is not satisfied; and presenting the coordinating-device alertfor the other message at the coordinating device.
 4. The method of claim1, further comprising: detecting, at the coordinating device, an othermessage; identifying that the coordinating device is in a do-not-disturbmode indicating that the coordinating device is to suppress audiostimuli elicited in response to messages; and transmitting an othersignal to the mobile device that corresponds to an instruction not topresent an audio alert corresponding to the other message.
 5. The methodof claim 1, wherein determining whether the coordinating device is inthe active mode includes determining whether a display screen of thecoordinating device is on or unlocked.
 6. The method of claim 1, furthercomprising, when it is determined that the coordinating device is not inthe active mode: determining that the mobile device has not indicatedthat it is handling presentation of the alert for the message; andpresenting the coordinating-device alert at the coordinating device. 7.The method of claim 1, wherein determining the location characteristicincludes determining whether the mobile device and the coordinatingdevice are connected to a same network, and wherein the proximatecondition is satisfied when the mobile device and the coordinatingdevice are connected to the same network.
 8. The method of claim 1,wherein each of the mobile-device alert and the coordinating-devicealert includes an audio or haptic alert.
 9. The method of claim 1,wherein the mode is identified at a first time, wherein it is determinedthat the alert-coordination criterion is satisfied, and wherein themethod further comprises: adding a first queue item to an alert queue,wherein the first queue item corresponds to the message; detecting asecond message; identifying, at a second time, a second mode of thecoordinating device; determining, based on the second mode, that thecoordinating device is to present the coordinating-device alert at thecoordinating device for the second message irrespective of a currentmode of the mobile device; in response to determining that thecoordinating device is to present the coordinating-device alert at thecoordinating device for the second message irrespective of the currentmode of the mobile device, presenting the coordinating-device alert atthe coordinating device for each of the message and the second message;and removing the first queue item from the alert queue.
 10. The methodof claim 1, further comprising: when it is determined that thecoordinating device is in the active mode: generating a visualnotification presentation for the message; and presenting the visualnotification presentation on the coordinating device; and when it isdetermined that the coordinating device is not in the active mode:subsequently identifying that the coordinating device is in the activemode; determining that a notification for the message is pending;generating a visual notification presentation for the message; andpresenting the visual notification presentation on the coordinatingdevice.
 11. The method of claim 1, further comprising: identifying anapp associated with the message; determining, based on the identifiedapp, whether the coordinating device is to handle message forwarding forthe app; when it is determined that the coordinating device is to handleforwarding for the app: identifying an other electronic device, whereineach of the coordinating device and the other electronic device areassociated with a same account; and transmitting, from the coordinatingdevice, a signal to the other electronic device, wherein the signalincludes at least part of the message.
 12. The method of claim 11,wherein determining whether the coordinating device is to handle messageforwarding for the app includes determining whether the app isidentified on a blacklist, and wherein it is determined that thecoordinating device is not to handle message forwarding for the app whenit is determined that the app is identified on the blacklist.
 13. Acomputer-implemented method comprising: detecting, at a mobile device, amessage at a first time; monitoring a communication channel to determinewhether a signal corresponding to an invitation to present an alertcorresponding to the message is received from a coordinating devicewithin a time period from the first time; when the signal is receivedfrom the coordinating device within the time period: identifying whetherthe mobile device is in an active mode; and when it is identified thatthe mobile device is in the active mode: presenting a mobile-devicealert for the message at the mobile device; and transmitting a secondsignal to the coordinating device, wherein the second signal indicatesthat the mobile device is handling presentation of the alert for themessage; and when the signal is not received from the coordinatingdevice within the time period, presenting a mobile-device alert for themessage.
 14. The method of claim 13, further comprising, when it isidentified that the mobile device is not in the active mode: suppressinga presentation of the mobile-device alert for the message; andtransmitting a declination signal to the coordinating device indicatingthat the mobile device is not handling presentation of the alert for themessage.
 15. The method of claim 13, further comprising: identifyingthat the mobile device is in a do-not-disturb mode; transmitting thesecond signal to the coordinating device, wherein the second signalindicates that the mobile device is not handling presentation of thealert for the message; and suppressing a presentation of themobile-device alert for the message at the mobile device.
 16. The methodof claim 13, further comprising: determining, by the mobile device, alocation characteristic of the coordinating device; using, by the mobiledevice, the location characteristic to determine that a proximatecondition is satisfied; and the mobile device, in response todetermining that the proximate condition is satisfied, at leasttemporarily refraining from presenting, at the mobile device, themobile-device alert for the message.
 17. The method of claim 16, whereindetermining the location characteristic includes determining, by themobile device, whether the mobile device and the coordinating device areconnected to a same network, and wherein the proximate condition issatisfied when the mobile device and the coordinating device areconnected to the same network.
 18. The method of claim 13, whereinidentifying, by the mobile device, whether the coordinating device is inan active mode includes determining whether a display screen of themobile device is unlocked and whether one or more conditions are met toinfer that the mobile device is being worn.
 19. The method of claim 18,wherein the one or more conditions are based on one or more sensorreadings.
 20. The method of claim 13, wherein each of the mobile-devicealert and the coordinating-device alert includes an audio or hapticalert.
 21. The method of claim 13, further comprising: when it isidentified that the mobile device is in the active mode: generating avisual notification presentation for the message; and presenting thevisual notification presentation on the mobile device; and when it isidentified that the mobile device is not in the active mode:identifying, at a second time, that the mobile device is in the activemode; determining that a notification for the message is pending;generating a visual notification presentation for the message; andpresenting the visual notification presentation on the mobile device.22. A coordinating device comprising: an output component configured tooutput stimuli; a connection component configured to transmitcommunications to other devices; one or more processors coupled to theoutput component and the connection component; and a computer-readablestorage medium containing instructions, that, when executed by the oneor more processors, cause the one or more processors to perform actionsincluding: detecting a message; determining a location characteristic ofa mobile device; determining, based on the location characteristic, thata proximate condition is satisfied; determining whether the coordinatingdevice is in an active mode; when it is determined that the coordinatingdevice is in the active mode, presenting a coordinating-device alert atthe coordinating device via the output component; and when it isdetermined that the coordinating device is not in the active mode,transmitting a signal, via the connection component, to the mobiledevice that corresponds to an invitation to present a mobile-devicealert corresponding to the message.
 23. The coordinating device of claim22, wherein the actions further include, when it is determined that thecoordinating device is in the active mode: transmitting a signal, viathe connection component, to the mobile device that corresponds to aninstruction to suppress the mobile-device alert corresponding to themessage.
 24. The coordinating device of claim 22, wherein the actionsfurther include: detecting an other message; determining that theproximate condition is not satisfied; and presenting thecoordinating-device alert for the other message at the coordinatingdevice via the output component.
 25. The coordinating device of claim22, wherein the actions further include: detecting an other message;identifying that the coordinating device is in a do-not-disturb modeindicating that the coordinating device is to suppress audio stimulielicited in response to messages; and transmitting an other signal, viathe connection component, to the mobile device that corresponds to aninstruction not to present an audio alert corresponding to the othermessage.
 26. The coordinating device of claim 22, wherein determiningwhether the coordinating device is in the active mode includesdetermining whether a display screen of the coordinating device is on orunlocked.
 27. The coordinating device of claim 22, wherein the actionsfurther include, when it is determined that the coordinating device isnot in the active mode: determining that the mobile device has notindicated that it is handling presentation of the alert for the message;and presenting the coordinating-device alert at the coordinating device.28. The coordinating device of claim 22, wherein each of themobile-device alert and the coordinating-device alert includes an audioor haptic alert.
 29. The coordinating device of claim 22, whereincoordinating device includes a phone.
 30. The coordinating device ofclaim 22, wherein the message corresponds to a message conveyingdetection of information from a remote source, a message from anotheruser, or a message generated locally at the coordinating device.
 31. Thecoordinating device of claim 22, wherein the mode is identified at afirst time, wherein it is determined that the alert-coordinationcriterion is satisfied, and wherein the actions further comprise: addinga first queue item to an alert queue, wherein the first queue itemcorresponds to the message; detecting a second message; identifying, ata second time, a second mode of the coordinating device; determining,based on the second mode, that the coordinating device is to present acoordinating-device alert at the coordinating device for the secondmessage irrespective of a current mode of the mobile device; in responseto determining that the coordinating device is to present thecoordinating-device alert at the coordinating device for the secondmessage irrespective of the current mode of the mobile device,presenting the coordinating-device alert at the coordinating device foreach of the message and the second message; and removing the first queueitem from the alert queue.
 32. A mobile device comprising: an outputcomponent configured to output stimuli; a connection componentconfigured to transmit communications over one or more communicationchannels to other devices; one or more processors coupled to the outputcomponent and the connection component; and a computer-readable storagemedium containing instructions, that, when executed by the one or moreprocessors, cause the one or more processors to perform actionsincluding: detecting a message at a first time; monitoring the one ormore communication channels to determine whether a signal correspondingto an invitation to present an alert corresponding to the message isreceived from a coordinating device within a time period from the firsttime; when the signal is received from the coordinating device withinthe time period: identifying whether the mobile device is in an activemode; and when it is identified that the mobile device is in the activemode: presenting a mobile-device alert for the message via the outputcomponent; and transmitting a second signal to the coordinating device,wherein the second signal indicates that the mobile device is handlingpresentation of the alert for the message; and when the signal is notreceived from the coordinating device within the time period, presentinga mobile-device alert for the message.
 33. The mobile device of claim32, wherein the actions further include: determining a locationcharacteristic of a coordinating device; using the locationcharacteristic to determine that a criterion is satisfied; and inresponse to determining that the location characteristic is satisfied,at least temporarily refraining from presenting the mobile-device alertfor the message.
 34. The mobile device of claim 32, wherein each of themobile-device alert and the coordinating-device alert includes an audioor haptic alert.
 35. A coordinating device system comprising: adetection module for detecting a message; a device detector module for:determining a location characteristic of a mobile device; anddetermining, based on the location characteristic, that a proximatecondition is satisfied; a mode detection module for determining whetherthe coordinating device system is in an active mode; an output modulefor, when it is determined that the coordinating device is in the activemode, presenting a coordinating-device alert at the coordinating devicesystem; and an alert coordination module for, when it is determined thatthe coordinating device is not in the active mode, transmitting a signalto the mobile device that corresponds to an invitation to present amobile-device alert corresponding to the message.
 36. The coordinatingdevice system of claim 35, wherein the alert coordination module isfurther for, when it is determined that the coordinating device is inthe active mode, transmitting a signal to the mobile device thatcorresponds to an instruction to suppress the mobile-device alertcorresponding to the message.
 37. The coordinating device system ofclaim 35, wherein: the detection module is further for detecting another message; the device detector module is further for determiningthat the proximate condition is not satisfied; and the output module isfurther for presenting the coordinating-device alert for the othermessage at the coordinating device.
 38. The coordinating device systemof claim 35, wherein: the alert coordination module is further for, whenit is determined that the coordinating device is not in the active mode,determining that the mobile device has not indicated that it is handlingpresentation of the alert for the message; and the output module isfurther for presenting the coordinating-device alert at the coordinatingdevice in response to the determining that the mobile device has notindicated that it is handling presentation of the alert for the message.39. A mobile device system comprising: a detection module for detectinga message at a first time; an alert coordination module for determiningwhether a signal corresponding to an invitation to present an alertcorresponding to the message is received from a coordinating devicewithin a time period from the first time; a mode detection module foridentifying, when the signal corresponding to the invitation to presentthe alert corresponding to the message is received from the coordinatingdevice within the time period from the first time, whether the mobiledevice system is in an active mode; and an output module for presentingan alert for the message when: the signal is received from thecoordinating device within the time period and the mobile device systemis in the active mode; or the signal is not received from thecoordinating device within the time period, wherein the alertcoordination module is further for transmitting a second signal to thecoordinating device when the signal is received from the coordinatingdevice within the time period and when the mobile electronic is in theactive mode, wherein the second signal indicates that the mobile devicesystem is handling presentation of the alert for the message.
 40. Themobile device system of claim 39, wherein: the output modules is furtherfor suppressing a presentation of a mobile-device alert for the messagewhen it is identified that the mobile device is not in the active mode;and the alert coordination module is further for transmitting adeclination signal to the coordinating device when it is identified thatthe mobile device is not in the active mode, wherein the declinationsignal indicates that the mobile device system is not handlingpresentation of the alert for the message.
 41. The mobile device systemof claim 39, wherein: the mode detection module is further fordetermining whether the mobile device is in a do-not-disturb mode; thealert coordination module is further for transmitting the second signalto the coordinating device when it is determined that the mobile deviceis in the do-not-disturb mode, wherein the second signal indicates thatthe mobile device is handling presentation of the alert for the message;and the output module is further for suppressing a presentation of amobile-device alert for the message at the mobile device when it isdetermined that the mobile device is in the do-not-disturb mode.
 42. Asystem comprising: a coordinating device system comprising: acoordinating-device detection module for detecting a message; acoordinating-device device detector module for: determining a locationcharacteristic of a mobile device system; and determining, based on thelocation characteristic, that a proximate condition is satisfied; acoordinating-device mode detection module for determining whether thecoordinating device system is in an active mode; a coordinating-deviceoutput module for, when it is determined that the coordinating device isin the active mode, presenting a coordinating-device alert at thecoordinating device system; and a coordinating-device alert coordinationmodule for, when it is determined that the coordinating device is not inthe active mode, transmitting a signal to the mobile device system thatcorresponds to an invitation to present a mobile-device alertcorresponding to the message; and a mobile device system comprising: amobile-device detection module for detecting the message at a firsttime; a mobile-device alert coordination module for determining whethera signal corresponding to an invitation to present an alertcorresponding to the message is received from the coordinating devicesystem within a time period from the first time; a mobile-device modedetection module for identifying, when the signal corresponding to theinvitation to present the alert corresponding to the message is receivedfrom the coordinating device within the time period from the first time,whether the mobile device system is in an active mode; and amobile-device output module for presenting an alert for the messagewhen: the signal is received from the coordinating device system withinthe time period and the mobile device system is in the active mode; orthe signal is not received from the coordinating device system withinthe time period, wherein the mobile-device alert coordination module isfurther for transmitting a second signal to the coordinating devicesystem when the signal is received from the coordinating device systemwithin the time period and when the mobile electronic is in the activemode, wherein the second signal indicates that the mobile device systemis handling presentation of the alert for the message.
 43. A systemcomprising: a coordinating device comprising: a coordinating-deviceoutput component configured to output stimuli; a coordinating-deviceconnection component configured to transmit communications to otherdevices; one or more coordinating-device processors coupled to thecoordinating-device output component and the coordinating-deviceconnection component; and a coordinating-device computer-readablestorage medium containing instructions, that, when executed by the oneor more coordinating-device processors, cause the one or morecoordinating-device processors to perform actions including: detecting amessage; determining a location characteristic of a mobile device;determining, based on the location characteristic, that a proximatecondition is satisfied; determining whether the coordinating device isin an active mode; when it is determined that the coordinating device isin the active mode, presenting a coordinating-device alert at thecoordinating device via the coordinating-device output component; andwhen it is determined that the coordinating device is not in the activemode, transmitting a signal, via the coordinating-device connectioncomponent, to the mobile device that corresponds to an invitation topresent a mobile-device alert corresponding to the message; and a mobiledevice comprising: a mobile-device output component configured to outputstimuli; a mobile-device connection component configured to transmitcommunications over one or more mobile-device communication channels toother devices; one or more mobile-device processors coupled to themobile-device output component and the mobile-device connectioncomponent; and a mobile-device computer-readable storage mediumcontaining instructions, that, when executed by the one or moremobile-device processors, cause the one or more mobile-device processorsto perform actions including: detecting the message at a first time;monitoring the one or more mobile-device communication channels todetermine whether a signal corresponding to an invitation to present analert corresponding to the message is received from the coordinatingdevice within a time period from the first time; when the signal isreceived from the coordinating device within the time period:identifying whether the mobile device is in an active mode; and when itis identified that the mobile device is in the active mode:  presentinga mobile-device alert for the message via the mobile-device outputcomponent; and  transmitting a second signal to the coordinating device,wherein the second signal indicates that the mobile device is handlingpresentation of the alert for the message; and when the signal is notreceived from the coordinating device within the time period, presentinga mobile-device alert for the message.
 44. A computer-implemented methodcomprising: detecting, at a coordinating device, a message; identifyingan app associated with the message; determining whether the app isidentified on a blacklist; when it is determined that the app is notidentified on the blacklist: identifying a mobile device, wherein eachof the coordinating device and the other electronic device is associatedwith a same account; and determining whether a subscribing app issubscribed to process the message, wherein the subscribing app includesthe app associated with the message or another app; when it isdetermined that a subscribing app is subscribed to process the message:enabling the subscribing app to process the message; accessing theprocessed message; and transmitting, from the coordinating device, asignal that includes the processed message to the mobile device; when itis determined that a subscribing app is not subscribed to process themessage, transmitting, from the coordinating device, a signal to themobile device, wherein the signal includes at least part of the message;when it is determined that the app is identified on the blacklist,refraining from forwarding the message or processed version thereof tothe other electronic device; determining a location characteristic ofthe mobile device; determining, based on the location characteristic,that a proximate condition is satisfied; determining whether thecoordinating device is in an active mode; when it is determined that thecoordinating device is in the active mode, presenting acoordinating-device alert at the coordinating device; and when it isdetermined that the coordinating device is not in the active mode,transmitting a signal to the mobile device that corresponds to aninvitation to present a mobile-device alert corresponding to themessage.